[macOS] Register the Cocoa main thread at an earlier point (#456)

Solves the issues caused by calling `EventsLoopProxy::wakeup()` too
early from a worker thread.
This commit is contained in:
YVT 2018-04-17 07:09:02 +09:00 committed by Francesca Frangipane
parent 19cd53193b
commit 10688915eb

View file

@ -179,6 +179,13 @@ impl UserCallback {
impl EventsLoop {
pub fn new() -> Self {
// Mark this thread as the main thread of the Cocoa event system.
//
// This must be done before any worker threads get a chance to call it
// (e.g., via `EventsLoopProxy::wakeup()`), causing a wrong thread to be
// marked as the main thread.
unsafe { appkit::NSApp(); }
EventsLoop {
shared: Arc::new(Shared::new()),
modifiers: Modifiers::new(),