sd_event_source_set_prepare
systemd
Developer
Lennart
Poettering
lennart@poettering.net
sd_event_source_set_prepare
3
sd_event_source_set_prepare
Set a preparation callback for event sources
#include <systemd/sd-event.h>
int sd_event_source_set_prepare
sd_event_source *source
sd_event_handler_t callback
typedef int (*sd_event_handler_t)
sd_event_source *s
void *userdata
Description
sd_event_source_set_prepare() may be
used to set a preparation callback for the event source object
specified as source. The callback function
specified as callback will be invoked
immediately before the event loop goes to sleep to wait for
incoming events. It is invoked with the user data pointer passed
when the event source was created. The event source will be disabled
if the callback function returns a negative error code. The callback
function may be used to reconfigure the precise events to wait for.
If the callback parameter is passed as NULL
the callback function is reset.
Event source objects have no preparation callback associated
when they are first created with calls such as
sd_event_add_io3,
sd_event_add_time3. Preparation
callback functions are supported for all event source types with
the exception of those created with
sd_event_add_exit3. Preparation
callback functions are dispatched in the order indicated by the
event source's priority field, as set with
sd_event_source_set_priority3. Preparation
callbacks of disabled event sources (see
sd_event_source_set_enabled3)
are not invoked.
Return Value
On success,
sd_event_source_set_prepare() returns a
non-negative integer. On failure, it returns a negative
errno-style error code.
Errors
Returned errors may indicate the following problems:
-EINVAL
source is not a valid
pointer to an sd_event_source
object.
-ESTALE
The event loop is already terminated.
-ENOMEM
Not enough memory.
-ECHILD
The event loop has been created in a different process.
-EDOM
The specified event source has been created
with
sd_event_add_exit3.
See Also
sd-event3,
sd_event_add_io3,
sd_event_add_time3,
sd_event_add_child3,
sd_event_add_signal3,
sd_event_add_defer3,
sd_event_source_set_enabled3,
sd_event_source_set_priority3,
sd_event_source_set_userdata3