logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

wl_event_loop - An event loop context.

Author

       Generated automatically by Doxygen for Wayland from the source code.

Version 1.23.1                              Thu May 22 2025 08:23:52                            wl_event_loop(3)

Detailed Description

       An event loop context.

       Usually you create an event loop context, add sources to it, and call wl_event_loop_dispatch() in a loop
       to process events.

       Seealsowl_event_source

Member Function Documentation

voidwl_event_loop_add_destroy_listener(structwl_event_loop*loop,structwl_listener*listener)
       Register a destroy listener for an event loop context

       Parametersloop The event loop context whose destruction to listen for.
           listener The listener with the callback to be called.

       Seealsowl_listenerstructwl_event_loop*wl_event_loop_create(void)
       Create a new event loop context

       Returns
           A new event loop context object.

       This creates a new event loop context. Initially this context is empty. Event sources need to be
       explicitly added to it.

       Normally the event loop is run by calling wl_event_loop_dispatch() in a loop until the program
       terminates. Alternatively, an event loop can be embedded in another event loop by its file descriptor,
       see wl_event_loop_get_fd().

   voidwl_event_loop_destroy(structwl_event_loop*loop)
       Destroy an event loop context

       Parametersloop The event loop to be destroyed.

       This emits the event loop destroy signal, closes the event loop file descriptor, and frees loop.

       If the event loop has existing sources, those cannot be safely removed afterwards. Therefore one must
       call wl_event_source_remove() on all event sources before destroying the event loop context.

   intwl_event_loop_dispatch(structwl_event_loop*loop,inttimeout)
       Wait for events and dispatch them

       Parametersloop The event loop whose sources to wait for.
           timeout The polling timeout in milliseconds.

       Returns
           0 for success, -1 for polling (or timer update) error.

       All the associated event sources are polled. This function blocks until any event source delivers an
       event (idle sources excluded), or the timeout expires. A timeout of -1 disables the timeout, causing the
       function to block indefinitely. A timeout of zero causes the poll to always return immediately.

       All idle sources are dispatched before blocking. An idle source is destroyed when it is dispatched. After
       blocking, all other ready sources are dispatched. Then, idle sources are dispatched again, in case the
       dispatched events created idle sources. Finally, all sources marked with wl_event_source_check() are
       dispatched in a loop until their dispatch functions all return zero.

   voidwl_event_loop_dispatch_idle(structwl_event_loop*loop)
       Dispatch the idle sources

       Parametersloop The event loop whose idle sources are dispatched.

       Seealsowl_event_loop_add_idle()structwl_listener*wl_event_loop_get_destroy_listener(structwl_event_loop*loop,wl_notify_func_tnotify)
       Get the listener struct for the specified callback

       Parametersloop The event loop context to inspect.
           notify The destroy callback to find.

       Returns
           The wl_listener registered to the event loop context with the given callback pointer.

   intwl_event_loop_get_fd(structwl_event_loop*loop)
       Get the event loop file descriptor

       Parametersloop The event loop context.

       Returns
           The aggregate file descriptor.

       This function returns the aggregate file descriptor, that represents all the event sources (idle sources
       excluded) associated with the given event loop context. When any event source makes an event available,
       it will be reflected in the aggregate file descriptor.

       When the aggregate file descriptor delivers an event, one can call wl_event_loop_dispatch() on the event
       loop context to dispatch all the available events.

Name

       wl_event_loop - An event loop context.

Synopsis

       #include <wayland-server-core.h>

   PublicMemberFunctions
       struct wl_event_loop * wl_event_loop_create (void)
       void wl_event_loop_destroy (struct wl_event_loop *loop)
       void wl_event_loop_dispatch_idle (struct wl_event_loop *loop)
       int wl_event_loop_dispatch (struct wl_event_loop *loop, int timeout)
       int wl_event_loop_get_fd (struct wl_event_loop *loop)
       void wl_event_loop_add_destroy_listener (struct wl_event_loop *loop, struct wl_listener *listener)
       struct wl_listener * wl_event_loop_get_destroy_listener (struct wl_event_loop *loop, wl_notify_func_t
           notify)

See Also