[Wayland-bugs] [Bug 91273] It's not safe to share wl_display fd with other threads.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jul 20 20:08:31 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=91273

--- Comment #8 from Jonas Ã…dahl <jadahl at gmail.com> ---
(In reply to Boram from comment #7)
> > I still don't understand what you mean by "the kernel may not wake up the
> > thread" if it refers to a different issue than the two mentioned above.
> 
> When A thread is polling on a display fd and B thread is polling on the same
> display fd, if a server sends messages, sometimes only one thread(Let's say
> it is B thread) awakes and reads all events so fast. Then A thread still is
> in the polling status and can't awake. Even if B thread reads and queue all
> events into corresponding queue_lists, the events of A thread's queue_list
> can't be handled because A thread is still in sleep.

When the API is used correctly, all threads will have exited the poll() call
and either canceled the read, or entered the read phase, so the scenario you
describe won't happen. Note that no thread will ever read from the fd until
*all* threads that called prepare_read has either called cancel_read or
read_events.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-bugs/attachments/20150721/bfc5a4d8/attachment-0001.html>


More information about the wayland-bugs mailing list