reuk
83e5264c86
Formatting: Remove double-dots from comments and other strings
2025-11-18 15:47:42 +00:00
Anthony Nicholls
36d07a6ce3
Docs: Replace doxygen preprocessor conditionals with @cond and @endconds
2025-07-21 18:11:43 +02:00
reuk
da09b99bbf
MessageManager: Add callSync counterpart to callAsync
2025-02-05 10:59:51 +00:00
reuk
29cf6ecf04
MessageManager: Update callAsync to take an arbitrary callable instead of a function
2025-02-04 13:15:44 +00:00
Tom Poole
94d98a2b10
Update licensing information
2024-04-16 11:39:35 +01:00
reuk
d47a7d18c1
MessageManager::Lock: Protect Lock from concurrent accesses
...
Previously, the Lock was not thread-safe when multiple threads were
locking/unlocking a single Lock instance simultaneously. This
isn't normally a problem when using the MessageManagerLock type, because
each MessageManagerLock contains its own private MessageManager::Lock,
and it's not possible for multiple threads to modify that private lock.
This change improves safety when using a MessageManager::Lock in the
manner of a CriticalSection or other JUCE lock type.
2023-08-23 11:14:33 +01:00
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
attila
d246cc280d
MessageManager: Add mutex to isThisTheMessageThread() and setCurrentThreadAsMessageThread()
2022-07-14 19:18:27 +00:00
Tom Poole
dea3fe60e4
Update copyright banners
2022-04-04 12:36:32 +01:00
ed
fc0f6b1f2f
Tidy up
2021-12-02 09:24:55 +00:00
Tom Poole
fe4ba9071b
Set the default value of JUCE_MODAL_LOOPS_PERMITTED to 0
...
See BREAKING-CHANGES.txt for more details.
2021-06-30 13:01:14 +01:00
ed
11d872ea1b
MessageMananger: Made dispatchNextMessageOnSystemQueue() accessible by internal code
2021-04-13 16:25:04 +01:00
ed
2bfed0b354
Removed some unnecessary JUCE_MODULE_AVAILABLE_* checks
2020-05-22 16:46:52 +01:00
Tom Poole
894e7d2bd2
Updated all license headers
2020-04-23 17:30:39 +01:00
ed
a54da0b832
Fixed some more typos
2020-01-07 08:53:23 +00:00
reuk
c80285463a
MessageManager: Obey the rule of useful return in callAsync
2019-08-30 17:13:21 +01:00
jules
0367d5c3a9
Added some PopupMenu::addItem overloads which let you attach a lambda callback to be invoked for a menu item.
2019-06-19 11:39:28 +01:00
Tom Poole
ff1dbf5f6d
Added a missing JUCE_API
2019-03-19 12:55:21 +00:00
reuk
4a294eaa39
Allow moving into AsyncCallInvoker
2019-03-06 17:48:47 +00:00
ed
a234721110
Added various clang-tidy modernize-* fixes
2019-01-31 15:15:31 +00:00
jules
cadac817c6
Enabled some more warning flags in Xcode, and fixed the problems they caused
2019-01-11 09:52:10 +00:00
jules
5979288706
Added some macros for asserting when functions are called in an unsafe manner outside the message thread.
2018-10-16 17:39:54 +01:00
jules
87042769b6
Tidied up some more old typedefs
2018-05-11 14:44:51 +01:00
jules
dee78f29f6
Misc cleanups and modernisation
2018-05-11 12:46:30 +01:00
jules
38295f332b
Converted some old typedefs to using declarations
2018-05-03 09:59:05 +01:00
Tom Poole
ab863a6dc2
Replaced all usage of ScopedPointer with std::unique_ptr
2018-04-19 20:27:47 +01:00
ed
cdbc28c18b
Add documentation tags
2018-03-15 12:10:32 +00:00
Tom Poole
8cecf0baf9
Assorted threading and undefined behaviour fixes
2017-12-11 16:37:17 +00:00
hogliux
b9b34393d1
Improved scheduling when multiple threads are fighting for the MessageManagerLock
2017-10-19 12:55:37 +01:00
jules
970eda679e
Added 'final' keyword to a lot of classes from which you really shouldn't be inheriting!
2017-10-09 12:38:06 +01:00
jules
eda613c6db
Moved all "namespace juce" declarations from module headers to the individual .h and .cpp source files. This makes life a lot easier for Intellisense and other IDE autocompletion tools
2017-09-08 08:59:55 +01:00
hogliux
b5afccc37c
Updated file headers and the README with the JUCE 5 license
2017-04-27 14:43:04 +01:00
tpoole
23ba2e49cf
Fixed VS2013 assignment operator compiler warnings
2017-04-20 12:24:49 +01:00
jules
60e9231fb1
Removed need for std::function in order to use MessageManager::callAsync(). Used it to modernise a few bits of old code.
2017-03-29 15:31:41 +01:00
hogliux
42305de6da
Added method OpenGLContext::executeOnGLThread to help executing gl house-keeping tasks on the gl thread even when the message manager is locked
2017-02-14 20:20:32 +00:00
hogliux
2da1bc5f41
Replace include guards with "#pragma once"
2017-02-01 17:18:07 +00:00
tpoole
2e84129479
Updated the juce_audio_basics, juce_audio_devices, juce_blocks_basics, juce_core and juce_events modules to a new ISC license
2016-12-14 10:07:26 +00:00
jules
2a1234b6ac
Simplified some inter-module dependencies and exception-catching fallbacks
2015-12-23 11:47:18 +00:00
jules
82b0a3628b
Added some comments regarding MessageManagerLocks
2015-12-14 09:48:25 +00:00
jules
02492b36b9
Lots of small whitespace tweaks.
2015-12-13 19:32:05 +00:00
hogliux
c7b8e77031
Update copyright notice
2015-07-22 15:59:34 +01:00
jules
89854c55b9
Added flag JUCE_COMPILER_SUPPORTS_LAMBDAS
2014-10-08 11:26:55 +01:00
jules
df3e039bf9
Added a handy static method MessageManager::callAsync() which can asynchronously invoke a lambda on the message thread.
2014-10-07 17:15:19 +01:00
jules
7b8ab7b503
Changed MessageBase::post() to return a bool to detect failure in the OS message queue (which can happen under stress on win32), and used this to avoid some messaging classes getting stuck.
2014-07-16 21:33:11 +01:00
jules
42482fc5db
Spelling fix.
2014-03-14 21:47:37 +00:00
jules
42aa27900b
Moved most of the functionality from JUCEApplication into JUCEApplicationBase, so that it can be used without needing juce_gui_basics to be present.
2013-09-07 09:43:45 +01:00
jules
5a1112ab94
Updated the format of the header include guard macros.
2013-07-17 16:26:35 +01:00
jules
03c2801f3f
Copyright header update in all module files. juce_core modules are now ISC licensed. All other modules are GPLv2/3/AGPLv3
2013-06-13 13:17:12 +01:00
jules
ad33fca65a
Minor clean-ups and documentation.
2013-02-07 09:45:56 +00:00
jules
0ceeb573d8
Minor changes to avoid pedantic compiler warnings.
2012-12-04 21:39:15 +00:00