Creates a CFRunLoopObserver object with a function callback.


CFRunLoopObserverRef CFRunLoopObserverCreate(CFAllocatorRef allocator, CFOptionFlags activities, Boolean repeats, CFIndex order, CFRunLoopObserverCallBack callout, CFRunLoopObserverContext *context);



The allocator to use to allocate memory for the new object. Pass NULL or kCFAllocatorDefault to use the current default allocator.


Set of flags identifying the activity stages of the run loop during which the observer should be called. See CFRunLoopActivityfor the list of stages. To have the observer called at multiple stages in the run loop, combine the CFRunLoopActivity values using the bitwise-OR operator.


A flag identifying whether the observer should be called only once or every time through the run loop. If repeats is false, the observer is invalidated after it is called once, even if the observer was scheduled to be called at multiple stages within the run loop.


A priority index indicating the order in which run loop observers are processed. When multiple run loop observers are scheduled in the same activity stage in a given run loop mode, the observers are processed in increasing order of this parameter. Pass 0 unless there is a reason to do otherwise.


The callback function invoked when the observer runs.


A structure holding contextual information for the run loop observer. The function copies the information out of the structure, so the memory pointed to by context does not need to persist beyond the function call. Can be NULL if the observer does not need the context’s info pointer to keep track of state.

Return Value

The new CFRunLoopObserver object. Ownership follows the Create Rule described in Ownership Policy.


The run loop observer is not automatically added to a run loop. To add the observer to a run loop, use CFRunLoopAddObserver. An observer can be registered to only one run loop, although it can be added to multiple run loop modes within that run loop.

See Also

CFRunLoopObserver Miscellaneous Functions


Creates a CFRunLoopObserver object with a block-based handler.


Returns a Boolean value that indicates whether a CFRunLoopObserver repeats.


Returns the run loop stages during which an observer runs.


Returns the context information for a CFRunLoopObserver object.


Returns the ordering parameter for a CFRunLoopObserver object.


Returns the type identifier for the CFRunLoopObserver opaque type.


Invalidates a CFRunLoopObserver object, stopping it from ever firing again.


Returns a Boolean value that indicates whether a CFRunLoopObserver object is valid and able to fire.