[vdr] Re: How to display an OSD message from a thread?
udo_richter at gmx.de
Fri Nov 25 23:55:29 CET 2005
Marcel Wiesweg wrote:
> There will be several cases where a plugin wants to access the main thread.
> There should be a clear and reliable mechanism to do this.
> - access and possibly wake up the event loop
> - an addressee
> - possibility to store private data
> - every request for access will result in exactly one access, as soon as
> possible as soon as all other events have been processed
What about this approach: Secure most of the main loop with a spin lock,
and release the lock before sleeping in the event loop. Before
processing the next key event, lock again.
By locking that spin lock, a thread can catch the main thread sleeping,
and keep it sleeping until whatever non-threadsafe has been done. The
user thread will not become main thread, but at least the main thread
will not interfere.
However, this doesn't solve the popup problems, eg. a simple way to
activate a cOsdObject without abuse of MainMenuAction.
More information about the vdr