static void func(SilcSchedule schedule, void *context)
{
- SILC_LOG_DEBUG(("func: %d", (int)context));
+ silc_thread_tls_set(context);
+ SILC_LOG_DEBUG(("func: %d", (int)silc_thread_tls_get()));
sleep(1);
}
-static void compl(SilcSchedule schedule, void *context)
+SILC_TASK_CALLBACK(compl)
{
SILC_LOG_DEBUG(("completion: %d", (int)context));
if ((int)context == 0xff)
silc_log_debug(TRUE);
silc_log_quick(TRUE);
silc_log_debug_hexdump(TRUE);
- silc_log_set_debug_string("*thread*");
+ silc_log_set_debug_string("*thread*,*errno*");
}
schedule = silc_schedule_init(0, NULL, NULL);
tp = silc_thread_pool_alloc(NULL, 0, 2, FALSE);
if (!tp)
goto err;
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < 6; i++) {
SILC_LOG_DEBUG(("Run thread %d", i + 1));
if (!silc_thread_pool_run(tp, TRUE, NULL, func, (void *) i + 1,
compl, (void *)i + 1))
goto err;
}
- sleep(4);
+ sleep(6);
SILC_LOG_DEBUG(("Stop thread pool"));
silc_thread_pool_free(tp, TRUE);