poll: Add _cogl_poll_renderer_modify_fd
_cogl_poll_rendererer_modify_fd can be used internally to modify the event mask on an FD to be polled. This will be used in the Wayland backend to start blocking on write whenever flushing the display fills the socket's buffer. Modifying the FD's events causes the poll age to increase. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 8bc0df53ee508687b87e547c1cbac5e8d7d5fc80)
This commit is contained in:
parent
41b97b885a
commit
651a2775b5
@ -43,6 +43,11 @@ _cogl_poll_renderer_add_fd (CoglRenderer *renderer,
|
||||
CoglPollDispatchCallback dispatch,
|
||||
void *user_data);
|
||||
|
||||
void
|
||||
_cogl_poll_renderer_modify_fd (CoglRenderer *renderer,
|
||||
int fd,
|
||||
CoglPollFDEvent events);
|
||||
|
||||
typedef struct _CoglPollSource CoglPollSource;
|
||||
|
||||
CoglPollSource *
|
||||
|
@ -151,6 +151,25 @@ _cogl_poll_renderer_remove_fd (CoglRenderer *renderer, int fd)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_cogl_poll_renderer_modify_fd (CoglRenderer *renderer,
|
||||
int fd,
|
||||
CoglPollFDEvent events)
|
||||
{
|
||||
int fd_index = find_pollfd (renderer, fd);
|
||||
|
||||
if (fd_index == -1)
|
||||
g_warn_if_reached ();
|
||||
else
|
||||
{
|
||||
CoglPollFD *pollfd =
|
||||
&g_array_index (renderer->poll_sources, CoglPollFD, fd_index);
|
||||
|
||||
pollfd->events = events;
|
||||
renderer->poll_fds_age++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_cogl_poll_renderer_add_fd (CoglRenderer *renderer,
|
||||
int fd,
|
||||
|
Loading…
x
Reference in New Issue
Block a user