Hi pq, Thank you for your response regarding multiple threads.
It seems to be the case that we have an additional thread within the server, and so we will look at removing this and use just a single thread. We will continue our efforts towards this approach. Regards, Lewis -----Original Message----- From: Pekka Paalanen [mailto:ppaala...@gmail.com] Sent: Thursday, November 16, 2017 8:37 AM To: Turner, LewisX <lewisx.tur...@intel.com> Cc: Derek Foreman <der...@osg.samsung.com>; wayland-devel@lists.freedesktop.org Subject: Re: Wayland Message Behaviour On Wed, 15 Nov 2017 15:47:32 +0000 "Turner, LewisX" <lewisx.tur...@intel.com> wrote: > Hi Derek and pq, > > Thanks for the further suggestions and comments. > > The idea around multiple threads is a likely candidate. We have added > a thread and the flush is coming from the extra thread. > > There seems to be two obvious approaches to solving the issue: > 1) Create a new queue for our new thread and just flush the new queue. > 2) Signal back to the main thread to request that the queue is > flushed. > > Do you have any advice/opinion on which approach might be better? Are > there any examples of taking either approach? Hi, this is about server-side, yes? There are no such queues server-side, so option 1 is impossible. Option 2 sounds like you would still be sending Wayland events from multiple threads. That is not reliable. I cannot see any way to share Wayland library objects between threads unless you explicitly add full locking around all libwayland-server calls. I would guess that will be painful, and it is also impossible, because your component is not the only one doing those calls, you would have to patch everything used on the server side. Multiple threads have never been supported in libwayland-server. There is literally no locking whatsoever to prevent threads from corrupting objects by simultaneous access. I cannot stress this enough. The only solution I can see, if you must have multiple threads, is to architect your program so that all libwayland-server objects (wl_display, wl_client, wl_resource, wl_event_loop, etc.) are only ever accessed from a single thread. Thanks, pq Intel Deutschland GmbH Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de Managing Directors: Christin Eisenschmid, Christian Lamprechter Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel