X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/26a2f9144b4f530c10117b2ffdcb117267a5cc31..a8d2fb31cbf09dcc4683c9566ff4bc89580f268c:/src/mac/carbon/utils.cpp diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index b197837cf1..b3756d3fa3 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -735,8 +735,10 @@ void wxMacWakeUp() if ( isSame ) { #if TARGET_CARBON - static wxMacCarbonEvent s_wakeupEvent ; OSStatus err = noErr ; +#if 0 + // lead sometimes to race conditions, although all calls used should be thread safe ... + static wxMacCarbonEvent s_wakeupEvent ; if ( !s_wakeupEvent.IsValid() ) { err = s_wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(), @@ -744,12 +746,20 @@ void wxMacWakeUp() } if ( err == noErr ) { + if ( IsEventInQueue( GetMainEventQueue() , s_wakeupEvent ) ) return ; s_wakeupEvent.SetCurrentTime() ; err = PostEventToQueue(GetMainEventQueue(), s_wakeupEvent, - kEventPriorityHigh); + kEventPriorityHigh ); } +#else + wxMacCarbonEvent wakeupEvent ; + wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(), + kEventAttributeNone ) ; + err = PostEventToQueue(GetMainEventQueue(), wakeupEvent, + kEventPriorityHigh ); +#endif #else PostEvent( nullEvent , 0 ) ; #endif