X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcschedule.c;h=204f632fede304c8f21b84d09621f418399ff2fc;hb=52e57c880aba9c5e89f59d962eb9af75670b76e0;hp=111f072749d027fdec2c0de76dac96db5b775766;hpb=2be21c834d932b3e5eb780c9b746a26387f56760;p=silc.git diff --git a/lib/silcutil/tests/test_silcschedule.c b/lib/silcutil/tests/test_silcschedule.c index 111f0727..204f632f 100644 --- a/lib/silcutil/tests/test_silcschedule.c +++ b/lib/silcutil/tests/test_silcschedule.c @@ -13,6 +13,15 @@ typedef void (*Callback)(void *context); SilcSchedule schedule; +void notify_cb(SilcSchedule schedule, SilcBool added, SilcTask task, + SilcBool fd_task, SilcUInt32 fd, long sec, long usec, + void *context) +{ + SILC_LOG_DEBUG(("Notify cb, %s %s task, fd %d, sec %d usec %d", + added ? "added" : "deleted", fd_task ? "fd" :"timeout", + fd, sec, usec)); +} + SILC_TASK_CALLBACK(foo) { @@ -48,7 +57,7 @@ SILC_TASK_CALLBACK(cont) SILC_LOG_DEBUG(("Adding %d timeout tasks", NUM_TTASK / 3)); for (i = 0; i < NUM_TTASK / 3; i++) - silc_schedule_task_add_timeout(schedule, timeout, (void *)i, 0, 1); + silc_schedule_task_add_timeout(schedule, timeout, (void *)i, 0, 0); silc_schedule_task_add_timeout(schedule, cont2, (void *)i, 0, 100); } @@ -71,6 +80,12 @@ SILC_TASK_CALLBACK(start) silc_schedule_task_add_timeout(schedule, cont, (void *)i, 0, 100); } +SILC_TASK_CALLBACK(interrupt) +{ + SILC_LOG_DEBUG(("SIGINT signal")); + silc_schedule_stop(schedule); +} + int main(int argc, char **argv) { SilcBool success = FALSE; @@ -86,8 +101,11 @@ int main(int argc, char **argv) schedule = silc_schedule_init(NUM_FTASK, NULL); if (!schedule) goto err; + silc_schedule_set_notify(schedule, notify_cb, NULL); + + silc_schedule_task_add_signal(schedule, SIGINT, interrupt, NULL); - silc_schedule_task_add_timeout(schedule, start, NULL, 0, 1); + silc_schedule_task_add_timeout(schedule, start, NULL, 1, 0); SILC_LOG_DEBUG(("Running scheduler")); silc_schedule(schedule);