SILC Core Library SILC Auth API SILC Channel API SILC Command API SILC ID API SILC ID Cache API SILC Modes SILC Notify API SILC Packet API SILC Argument API SILC Private API SILC Math Library SILC Math API SILC MP API SILC SFTP Library SILC SFTP API SILC SFTP Filesystems SILC Utility Library SILC Buffer API SILC Buffer Format API SILC Buffer Utility API SILC Hash Table API SILC Log and Debug API SILC Memory API SILC Mutex API SILC Thread API SILC Net API SILC Schedule API SILC Socket Connection API SILC Protocol API SILC Util API SILC Zip API SILC List API SILC Dynamic List API SILC Key Exchange Library SILC SKE API SILC SKE Status SILC Client Library SILC Client API SILC Crypto Library SILC Cipher API SILC Hash API SILC HMAC API SILC PKCS API SILC RNG API
Function silc_schedule_task_add SYNOPSIS
        SilcTask silc_schedule_task_add(SilcSchedule schedule, uint32 fd,
                                        SilcTaskCallback callback,
                                        void *context,
                                        long seconds, long useconds,
                                        SilcTaskType type,
                                        SilcTaskPriority priority);
DESCRIPTION
        Registers a new task to the scheduler. This same function is used
        to register all types of tasks. The `type' argument tells what type
        of the task is. Note that when registering non-timeout tasks one
        should also pass 0 as timeout, as the timeout will be ignored anyway.
        Also, note, that one cannot register timeout task with 0 timeout.
        There cannot be zero timeouts, passing zero means no timeout is used
        for the task and SILC_TASK_FD is used as default task type in
        this case.

        The `schedule' is the scheduler context. The `fd' is the file
        descriptor of the task. On WIN32 systems the `fd' is not actual
        file descriptor but some WIN32 event handle. On WIN32 system the `fd'
        may be a socket created by the SILC Net API routines, WSAEVENT object
        created by Winsock2 network routines or arbitrary WIN32 HANDLE object.
        On Unix systems the `fd' is always the real file descriptor.

        The `callback' is the task callback that will be called when some
        event occurs for this task. The `context' is sent as argument to
        the task `callback' function. For timeout tasks the callback is
        called after the specified timeout has elapsed.

        If the `type' is SILC_TASK_TIMEOUT then `seconds' and `useconds'
        may be non-zero.  Otherwise they should be zero. The `priority'
        indicates the priority of the task.

        It is always safe to call this function in any place. New tasks
        may be added also in task callbacks, and in multi-threaded environment
        in other threads as well.
>> SilcScheduleAPI >> SilcSchedule >> SilcTask >> SilcTaskType >> SilcTaskEvent >> SilcTaskPriority >> SilcTaskCallback >> SILC_ALL_TASKS >> SILC_TASK_CALLBACK >> SILC_TASK_CALLBACK_GLOBAL >> silc_schedule_init >> silc_schedule_uninit >> silc_schedule_stop >> silc_schedule >> silc_schedule_one >> silc_schedule_wakeup >> silc_schedule_task_add >> silc_schedule_task_del >> silc_schedule_task_del_by_fd >> silc_schedule_task_del_by_callback >> silc_schedule_task_del_by_context >> silc_schedule_set_listen_fd >> silc_schedule_unset_listen_fd