Function

dispatch_source_create

Creates a new dispatch source to monitor low-level system events.

Declaration

dispatch_source_t dispatch_source_create(dispatch_source_type_t type, uintptr_t handle, unsigned long mask, dispatch_queue_t queue);

Parameters

type

The type of the dispatch source. For example, to create a timer source, specify DISPATCH_SOURCE_TYPE_TIMER. For a complete list of constants, see dispatch_source_type_t.

handle

The underlying system handle to monitor. The interpretation of this argument is determined by the constant provided in the type parameter.

mask

A mask of flags specifying which events are desired. The interpretation of this argument is determined by the constant provided in the type parameter.

queue

The dispatch queue to which the event handler block is submitted.

Return Value

A new dispatch source object or NULL if the dispatch source could not be created.

Discussion

Dispatch sources are not reentrant. Any events received while the dispatch source is suspended or while the event handler block is currently executing are coalesced and delivered after the dispatch source is resumed or the event handler block has returned.

Dispatch sources are created in a suspended state. After creating the source and setting any desired attributes (for example, the handler or the context), your application must call dispatch_activate to begin event delivery.

See Also

Creating a Dispatch Source

dispatch_source_t

An object that coordinates the processing of specific low-level system events, such as file-system events, timers, and UNIX signals.

dispatch_source_type_t

An identifier for the type of system object being monitored by a dispatch source.