On 07/05/2016 12:08 AM, chmike wrote:
Excuse the naive question rikki, why does the window event loop have to
be single threaded ? The question is just to expose the rationale.
Is it to avoid the synchronization overhead to access the window data ?
In this case there is indeed a lot of data. Is there another reason ?
In some applications and event types the synchronization overhead is
small compared to the benefit of executing tasks in parallel on
different cores.
It is indeed none trivial and could be an interresting phd study subject.
The window event loop doesn't have to be single threaded, but it is
thread limited. Specifically it cannot be on other threads. If you
attempt to work with another threads window, it is more or less
undefined behavior across the board.
Even with Cocoa (OSX's way for GUI's) is considered thread-unsafe
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html
And that is far higher level then X11 or WinAPI does it.