1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/modules/juce_events
reuk 33e81616ad
MessageManager: Improve thread safety of Lock type
Previously, the following sequence of events was possible:

Background thread                   Main thread
------------------------------------------------------------------------
Lock::tryAcquire()
    Run to blockingMessage->post()

                                    BlockingMessage::messageCallback()
                                        Run to abortWait.set (1)

Lock::tryAcquire()
    Exit through return true

Lock::~Lock()
    Destroy memory used for Lock

                                    BlockingMessage::messageCallback()
                                        Execute lockedEvent.signal()
                                        Memory already freed, crash
2023-05-02 19:37:47 +01:00
..
broadcasters LockingAsyncUpdater: Add a new slightly-more-threadsafe AsyncUpdater alternative 2023-04-18 11:39:39 +01:00
interprocess Thread: Introduce a new Thread backend 2022-10-18 11:49:47 +01:00
messages MessageManager: Improve thread safety of Lock type 2023-05-02 19:37:47 +01:00
native Native: Rename all native files for improved consistency 2023-04-04 19:54:29 +01:00
timers Thread: Introduce a new Thread backend 2022-10-18 11:49:47 +01:00
juce_events.cpp LockingAsyncUpdater: Add a new slightly-more-threadsafe AsyncUpdater alternative 2023-04-18 11:39:39 +01:00
juce_events.h LockingAsyncUpdater: Add a new slightly-more-threadsafe AsyncUpdater alternative 2023-04-18 11:39:39 +01:00
juce_events.mm Update copyright banners 2022-04-04 12:36:32 +01:00