silc_schedule_event_signal

SYNOPSIS

    SilcBool silc_schedule_event_signal(SilcSchedule schedule,
                                        const char *event,
                                        SilcTask task, ...);

DESCRIPTION

Signals an event task. The `event' or `task' must be non-NULL. If `event' is non-NULL it is the name of the event to signal. If the `task' is non-NULL it is the event task to be signalled. It is marginally faster to use the `task' pointer directly instead of `event' to send the signal.

The variable arguments are the arguments to be sent in the signal to the connected entities. The silc_schedule_task_add_event defines what arguments must be sent to each signal. The variable argument list must not be ended with SILC_PARAM_END even though it is ended with that in silc_schedule_task_add_event.

Signal delivery is synchronous; the signal is delivered inside this function. If a receiver was originally in another thread, the signal is delivered in the thread where this function is called. This means that concurrency control (locking) is required if the application uses events in multiple threads.

EXAMPLE

    silc_schedule_event_signal(schedule, "foo event", NULL, intarg, buffer);