SilcTaskNotifyCb

SYNOPSIS

    typedef void (*SilcTaskNotifyCb)(SilcSchedule schedule,
                                     SilcBool added, SilcTask task,
                                     SilcBool fd_task, SilcUInt32 fd,
                                     SilcTaskEvent event,
                                     long seconds, long useconds,
                                     void *context);

DESCRIPTION

Task notify callback. Callback of this type can be set to scheduler by calling silc_schedule_set_notify and will be called whenever new task is added or old task is removed. If `added' is TRUE then `task' is added to scheduler. If `added' is FALSE then `task' will be removed from the scheduler. If `fd_task' is TRUE the `task' is file descriptor task and has `fd' is its file descriptor. If `fd_task' is FALSE then the task is timeout task and `seconds' and `useconds' specify the timeout. The `context' is the context given to silc_schedule_set_notify.

NOTES

The `schedule' is locked while this callback is called. This means that new tasks cannot be added or removed inside this callback.

When timeout task expires this callback is not called. This is called only when task is explicitly deleted from the scheduler. Note that, when timeout task expires it is removed from the scheduler and `task' will become invalid.

If fd task changes its events, this will be called as if it was a new task with different `event' mask.