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)
{
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);
}
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;
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);