Contents

dispatch_source_create

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

Declaration

extern dispatch_source_t dispatch_source_create(dispatch_source_type_t type, uintptr_t handle, uintptr_t 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 activate() to begin event delivery.

See Also

Creating a Dispatch Source