File tree Expand file tree Collapse file tree 2 files changed +6
-9
lines changed
modules/juce_events/messages Expand file tree Collapse file tree 2 files changed +6
-9
lines changed Original file line number Diff line number Diff line change @@ -252,18 +252,16 @@ void MessageManager::deregisterBroadcastListener (ActionListener* const listener
252252// ==============================================================================
253253bool MessageManager::isThisTheMessageThread () const noexcept
254254{
255- const std::lock_guard<std::mutex> lock { messageThreadIdMutex };
256-
257- return Thread::getCurrentThreadId () == messageThreadId;
255+ return Thread::getCurrentThreadId () == messageThreadId.get ();
258256}
259257
260258void MessageManager::setCurrentThreadAsMessageThread ()
261259{
262260 auto thisThread = Thread::getCurrentThreadId ();
263261
264- const std::lock_guard<std::mutex> lock { messageThreadIdMutex } ;
262+ messageThreadId. exchange (thisThread) ;
265263
266- if (std::exchange ( messageThreadId, thisThread ) != thisThread)
264+ if (messageThreadId. get ( ) != thisThread)
267265 {
268266#if JUCE_WINDOWS
269267 // This is needed on windows to make sure the message window is created by this thread
@@ -276,7 +274,7 @@ void MessageManager::setCurrentThreadAsMessageThread()
276274bool MessageManager::currentThreadHasLockedMessageManager () const noexcept
277275{
278276 auto thisThread = Thread::getCurrentThreadId ();
279- return thisThread == messageThreadId || thisThread == threadWithLock.get ();
277+ return thisThread == messageThreadId. get () || thisThread == threadWithLock.get ();
280278}
281279
282280bool MessageManager::existsAndIsLockedByCurrentThread () noexcept
Original file line number Diff line number Diff line change @@ -147,7 +147,7 @@ class JUCE_API MessageManager final
147147 (Best to ignore this method unless you really know what you're doing..)
148148 @see setCurrentThreadAsMessageThread
149149 */
150- Thread::ThreadID getCurrentMessageThread () const noexcept { return messageThreadId; }
150+ Thread::ThreadID getCurrentMessageThread () const noexcept { return messageThreadId. get () ; }
151151
152152 /* * Returns true if the caller thread has currently got the message manager locked.
153153
@@ -352,9 +352,8 @@ class JUCE_API MessageManager final
352352
353353 std::unique_ptr<ActionBroadcaster> broadcaster;
354354 Atomic<int > quitMessagePosted { 0 }, quitMessageReceived { 0 };
355- Thread::ThreadID messageThreadId;
355+ Atomic< Thread::ThreadID> messageThreadId;
356356 Atomic<Thread::ThreadID> threadWithLock;
357- mutable std::mutex messageThreadIdMutex;
358357
359358 static bool postMessageToSystemQueue (MessageBase*);
360359 static void * exitModalLoopCallback (void *);
You can’t perform that action at this time.
0 commit comments