mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-15 00:24:19 +00:00
New class: ThreadLocalValue.
This commit is contained in:
parent
b00ae44410
commit
43d9a4eb16
53 changed files with 204 additions and 20 deletions
|
|
@ -639,6 +639,7 @@
|
|||
D526C38D581425949BA0E4AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FilePreviewComponent.h"; path = "../../Source/Application/jucer_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D53B54D1786A1FFC024BF064 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
D5A6D00DEFDC650AF432A698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_gui_basics/application/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D678882D133090214AF681BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D6C91E2BF537F75A80F5C1DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D75EAC16FAECCC51E3669193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D780ED33573AED5AD383A036 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -912,6 +913,7 @@
|
|||
75EB08697D38632CCBE734D8,
|
||||
541BCBB19A86B7E793D397CC,
|
||||
E2C1C995D554A3F0A363CE58,
|
||||
D678882D133090214AF681BC,
|
||||
6736FDF36413E6445C526C86,
|
||||
78B148C840109794FED89FAB,
|
||||
32D9A904B4186B64A61FA8CC,
|
||||
|
|
|
|||
|
|
@ -589,6 +589,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -589,6 +589,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1059,6 +1059,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ScopedWriteLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_SpinLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_TimeSliceThread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_WaitableEvent.h"/>
|
||||
|
|
|
|||
|
|
@ -1512,6 +1512,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -446,6 +446,7 @@
|
|||
6B0F3AF3FE7B113C33112897 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BBB8746C2C1BB5F3C3F1FC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BBE4F2809E2AE0FE445302C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BD99638187A39ABC44DCBA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C608B44E265F761D09C91CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C956B90C1BB1217BF02F0D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6CC2241F234EDD873FD5BDC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1238,6 +1239,7 @@
|
|||
A6073115FE5E1E635C78DDFE,
|
||||
19789C9C8EDD3CC9F37592C3,
|
||||
B6B93A495D82478E99956AD7,
|
||||
6BD99638187A39ABC44DCBA0,
|
||||
070230F8B36CFD14E7EEAD71,
|
||||
E48615F1F7D8213F6DC24FC9,
|
||||
C2D1EE14670950990F0769B7,
|
||||
|
|
|
|||
|
|
@ -1345,6 +1345,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1345,6 +1345,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1338,6 +1338,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ScopedWriteLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_SpinLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_TimeSliceThread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_WaitableEvent.h"/>
|
||||
|
|
|
|||
|
|
@ -2013,6 +2013,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -437,6 +437,7 @@
|
|||
6B0F3AF3FE7B113C33112897 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BBB8746C2C1BB5F3C3F1FC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BBE4F2809E2AE0FE445302C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BD99638187A39ABC44DCBA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C608B44E265F761D09C91CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C956B90C1BB1217BF02F0D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6CC2241F234EDD873FD5BDC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1228,6 +1229,7 @@
|
|||
A6073115FE5E1E635C78DDFE,
|
||||
19789C9C8EDD3CC9F37592C3,
|
||||
B6B93A495D82478E99956AD7,
|
||||
6BD99638187A39ABC44DCBA0,
|
||||
070230F8B36CFD14E7EEAD71,
|
||||
E48615F1F7D8213F6DC24FC9,
|
||||
C2D1EE14670950990F0769B7,
|
||||
|
|
|
|||
|
|
@ -638,6 +638,7 @@
|
|||
B829B4BAE71C6F09169542B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
B8B25605AB1A04A8AE545227 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B8B760CB559864834CC9AB32 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B9BDF0A1E699EA2D3549664E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B9BE6469604B9D3252EFA7E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
BAF34E1248A8D20DDA992AFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
BB1148DE7477E7B58ABD2B95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1162,6 +1163,7 @@
|
|||
07FBBCECF4C212D67AD71FFD,
|
||||
59968E95CF78A0E8A03B1DA1,
|
||||
D8F9FCA9940730EDBD37CD80,
|
||||
B9BDF0A1E699EA2D3549664E,
|
||||
5B1856ED91BE34FECEF71882,
|
||||
014D028CBF01E01B77B47189,
|
||||
DFDEE243F607A7A7C2762D41,
|
||||
|
|
|
|||
|
|
@ -1294,6 +1294,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1294,6 +1294,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -592,6 +592,7 @@
|
|||
A6C1DF1F0A364CE60B59B34D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
A6F318DE812F2D620EF66C76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
A765E6FBF39366D0A40E1ECA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
A813861C1082866ED9E9F83C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
A8544FC5863CEBB41807B946 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
AA668D8E33AD917D7DFC70E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
AA7350771ED17561EB915EED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1160,6 +1161,7 @@
|
|||
6EEACEE1071D58DA155DC87E,
|
||||
0C339E5B52835F87ABD2BF95,
|
||||
0E8A874AB7E4971D90F58004,
|
||||
A813861C1082866ED9E9F83C,
|
||||
DD53156BA824889FD7DF52D2,
|
||||
D795067D4EFB5A34BC383250,
|
||||
ACC266EC4CC8CCD368FA9E7D,
|
||||
|
|
|
|||
|
|
@ -1268,6 +1268,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1268,6 +1268,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@
|
|||
5C3BCD09CD3AD887041C5E8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
5F833FAB1A331DB46476C0EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
640CDE85F8E03D80FB5610DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
64C54E1E625AEA86E3231070 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
64ED92C7E1127452F174A2F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
65BED5E9B981623309868FB5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
69183575FCA4C1CC38032A51 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -275,6 +276,7 @@
|
|||
D382823C1F24883BFA9E466E,
|
||||
A90A8090D3D01B7595120896,
|
||||
24E7F8677EB0BDA5D62976F7,
|
||||
64C54E1E625AEA86E3231070,
|
||||
71ACB1F2FB606C384DACE55B,
|
||||
3CC375E8CCC0987FAE0B40BE,
|
||||
4B091BB2828A638ED469FF85,
|
||||
|
|
|
|||
|
|
@ -387,6 +387,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -459,6 +459,7 @@
|
|||
B5880B8DE2B7362EF263D82A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B5D117435CCB80BF33D4AD00 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B63040F76DC9E9F5256AC022 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B6AC99C26F679771A2F942B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B6C28B2DAE4802FA291E3487 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B6C345F16BFAD37B64A5605A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B78154B28539A2E8152D2B9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -714,6 +715,7 @@
|
|||
832D1429ADEE1B07AB3693A3,
|
||||
62DF24F1C7E14730CDA3F27B,
|
||||
0CE43A8B78FB46CE63C0AB6A,
|
||||
B6AC99C26F679771A2F942B5,
|
||||
9FBFACCA56589CDCC3D78F0E,
|
||||
65DBA30ACD7C6156850F1F4E,
|
||||
6603F93CB38F0E7BEB779A9D,
|
||||
|
|
|
|||
|
|
@ -389,6 +389,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -389,6 +389,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -457,6 +457,7 @@
|
|||
B5880B8DE2B7362EF263D82A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B5D117435CCB80BF33D4AD00 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B63040F76DC9E9F5256AC022 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B6AC99C26F679771A2F942B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B6C28B2DAE4802FA291E3487 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B6C345F16BFAD37B64A5605A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B78154B28539A2E8152D2B9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -714,6 +715,7 @@
|
|||
832D1429ADEE1B07AB3693A3,
|
||||
62DF24F1C7E14730CDA3F27B,
|
||||
0CE43A8B78FB46CE63C0AB6A,
|
||||
B6AC99C26F679771A2F942B5,
|
||||
9FBFACCA56589CDCC3D78F0E,
|
||||
65DBA30ACD7C6156850F1F4E,
|
||||
6603F93CB38F0E7BEB779A9D,
|
||||
|
|
|
|||
|
|
@ -350,6 +350,7 @@
|
|||
69A2D931797D6874C7A5E38E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
69BF80CDD6A1A074F69A8B43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
6A0693D05618ED90A36763E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6A6977EBA7FA2F99E6319BAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6A9A0038C8C0D99CC0617252 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6B6297F7D4B238AFCC443AD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6B64E04213CAC7A2D63C6601 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1079,6 +1080,7 @@
|
|||
F687E441210FEB4EEFB0CC33,
|
||||
697B3FD1E65312EB6CF43207,
|
||||
737A92AF4D1A15FAF9B399C4,
|
||||
6A6977EBA7FA2F99E6319BAF,
|
||||
20BEC253199F5AC74DB5199E,
|
||||
0541C7E0E6D0981F7CE057BF,
|
||||
7D7F41DAEC269A1DC73B3BF6,
|
||||
|
|
|
|||
|
|
@ -1159,6 +1159,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1284,6 +1284,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ScopedWriteLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_SpinLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_TimeSliceThread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_WaitableEvent.h"/>
|
||||
|
|
|
|||
|
|
@ -1848,6 +1848,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -360,6 +360,7 @@
|
|||
6AC27B2485FCB68A2A99E6DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6ACD53EF8FCEC0EB983091DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6AEBA52E51DD10D81ABF4B6C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6BE35308F433CB68D0B18FAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C53350C78E06A5342B955EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C7F29F70FA62B98B14FB776 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
6C83B7369C7BB91E5EC754F9 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -974,6 +975,7 @@
|
|||
3BB5112E0620777F6F7366AA,
|
||||
3E4377792A31E6BA418FD02D,
|
||||
DC7F24486E7C5C9B60CEDB38,
|
||||
6BE35308F433CB68D0B18FAE,
|
||||
8CBAA0DE1F30C590E248CE92,
|
||||
13A4BF57ECC22D11C092D84E,
|
||||
12577080134C0C5D3F909D0A,
|
||||
|
|
|
|||
|
|
@ -556,6 +556,7 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1062,6 +1062,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ScopedWriteLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_SpinLock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_TimeSliceThread.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_WaitableEvent.h"/>
|
||||
|
|
|
|||
|
|
@ -1587,6 +1587,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_Thread.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadLocalValue.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_core\threads\juce_ThreadPool.h">
|
||||
<Filter>Juce Modules\juce_core\threads</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_audio_basics",
|
||||
"name": "JUCE audio and midi data classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for audio buffer manipulation, midi message handling, synthesis, etc",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_audio_devices",
|
||||
"name": "JUCE audio and midi I/O device classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes to play and record from audio and midi i/o devices.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
|
||||
AudioFormatManager::AudioFormatManager()
|
||||
: defaultFormatIndex (0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_audio_formats",
|
||||
"name": "JUCE audio file format codecs",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for reading and writing various audio file formats.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_audio_plugin_client",
|
||||
"name": "JUCE audio plugin wrapper classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for building VST, RTAS and AU plugins.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_audio_processors",
|
||||
"name": "JUCE audio plugin hosting classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for loading and playing VST, AU, or internally-generated audio processors.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_audio_utils",
|
||||
"name": "JUCE extra audio utility classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for audio-related GUI and miscellaneous tasks.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_browser_plugin_client",
|
||||
"name": "JUCE browser plugin wrapper classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for building NPAPI and ActiveX browser plugins.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -366,6 +366,9 @@ BEGIN_JUCE_NAMESPACE
|
|||
#ifndef __JUCE_THREAD_JUCEHEADER__
|
||||
#include "threads/juce_Thread.h"
|
||||
#endif
|
||||
#ifndef __JUCE_THREADLOCALVALUE_JUCEHEADER__
|
||||
#include "threads/juce_ThreadLocalValue.h"
|
||||
#endif
|
||||
#ifndef __JUCE_THREADPOOL_JUCEHEADER__
|
||||
#include "threads/juce_ThreadPool.h"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_core",
|
||||
"name": "JUCE core classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
#define JUCE_MAJOR_VERSION 2
|
||||
#define JUCE_MINOR_VERSION 0
|
||||
#define JUCE_BUILDNUMBER 13
|
||||
#define JUCE_BUILDNUMBER 14
|
||||
|
||||
/** Current Juce version number.
|
||||
|
||||
|
|
|
|||
135
modules/juce_core/threads/juce_ThreadLocalValue.h
Normal file
135
modules/juce_core/threads/juce_ThreadLocalValue.h
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-11 by Raw Material Software Ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the GNU General
|
||||
Public License (Version 2), as published by the Free Software Foundation.
|
||||
A copy of the license is included in the JUCE distribution, or can be found
|
||||
online at www.gnu.org/licenses.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
To release a closed-source product which uses JUCE, commercial licenses are
|
||||
available: visit www.rawmaterialsoftware.com/juce for more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_THREADLOCALVALUE_JUCEHEADER__
|
||||
#define __JUCE_THREADLOCALVALUE_JUCEHEADER__
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
Provides cross-platform support for thread-local objects.
|
||||
|
||||
This class holds an internal list of objects of the templated type, keeping
|
||||
an instance for each thread that requests one. The first time a thread attempts
|
||||
to access its value, an object is created and added to the list for that thread.
|
||||
|
||||
The templated class for your value could be a primitive type, or any class that
|
||||
has a default constructor.
|
||||
|
||||
Once a thread has accessed its object, that object will not be deleted until the
|
||||
ThreadLocalValue object itself is deleted, even if its thread exits before that.
|
||||
But, because thread ID numbers are used to identify threads, and OSes often re-use
|
||||
these ID numbers, value objects will often be implicitly re-used by new threads whose
|
||||
ID number is the same as one that was used by an earlier thread.
|
||||
*/
|
||||
template <typename Type>
|
||||
class ThreadLocalValue
|
||||
{
|
||||
public:
|
||||
/** */
|
||||
ThreadLocalValue() noexcept
|
||||
{
|
||||
}
|
||||
|
||||
/** Destructor.
|
||||
When this object is deleted, all the value objects for all threads will be deleted.
|
||||
*/
|
||||
~ThreadLocalValue()
|
||||
{
|
||||
for (ObjectHolder* o = first.value; o != nullptr;)
|
||||
{
|
||||
ObjectHolder* const next = o->next;
|
||||
delete o;
|
||||
o = next;
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns a reference to this thread's instance of the value.
|
||||
Note that the first time a thread tries to access the value, an instance of the
|
||||
value object will be created - so if your value's class has a non-trivial
|
||||
constructor, be aware that this method could invoke it.
|
||||
*/
|
||||
Type& operator*() const noexcept { return get(); }
|
||||
|
||||
/** Returns a pointer to this thread's instance of the value.
|
||||
Note that the first time a thread tries to access the value, an instance of the
|
||||
value object will be created - so if your value's class has a non-trivial
|
||||
constructor, be aware that this method could invoke it.
|
||||
*/
|
||||
operator Type*() const noexcept { return &get(); }
|
||||
|
||||
/** Accesses a method or field of the value object.
|
||||
Note that the first time a thread tries to access the value, an instance of the
|
||||
value object will be created - so if your value's class has a non-trivial
|
||||
constructor, be aware that this method could invoke it.
|
||||
*/
|
||||
Type* operator->() const noexcept { return &get(); }
|
||||
|
||||
/** Returns a reference to this thread's instance of the value.
|
||||
Note that the first time a thread tries to access the value, an instance of the
|
||||
value object will be created - so if your value's class has a non-trivial
|
||||
constructor, be aware that this method could invoke it.
|
||||
*/
|
||||
Type& get() const noexcept
|
||||
{
|
||||
const Thread::ThreadID threadId = Thread::getCurrentThreadId();
|
||||
|
||||
for (ObjectHolder* o = first.get(); o != nullptr; o = o->next)
|
||||
if (o->threadId == threadId)
|
||||
return o->object;
|
||||
|
||||
ObjectHolder* const newObject = new ObjectHolder (threadId);
|
||||
|
||||
do
|
||||
{
|
||||
newObject->next = first.get();
|
||||
}
|
||||
while (! first.compareAndSetBool (newObject, newObject->next));
|
||||
|
||||
return newObject->object;
|
||||
}
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
struct ObjectHolder
|
||||
{
|
||||
ObjectHolder (const Thread::ThreadID& threadId_)
|
||||
: threadId (threadId_), object()
|
||||
{}
|
||||
|
||||
const Thread::ThreadID threadId;
|
||||
ObjectHolder* next;
|
||||
Type object;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE (ObjectHolder);
|
||||
};
|
||||
|
||||
mutable Atomic<ObjectHolder*> first;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE (ThreadLocalValue);
|
||||
};
|
||||
|
||||
|
||||
#endif // __JUCE_THREADLOCALVALUE_JUCEHEADER__
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_cryptography",
|
||||
"name": "JUCE cryptography classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_data_structures",
|
||||
"name": "JUCE data model helper classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for undo/redo management, and smart data structures.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_events",
|
||||
"name": "JUCE message and event handling classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for running an application's main event loop and sending/receiving messages, timers, etc.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_graphics",
|
||||
"name": "JUCE graphics classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for 2D vector graphics, image loading/saving, font handling, etc.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_gui_basics",
|
||||
"name": "JUCE GUI core classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Basic user-interface components and related classes.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_gui_extra",
|
||||
"name": "JUCE extended GUI classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Miscellaneous GUI classes for specialised tasks.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_opengl",
|
||||
"name": "JUCE OpenGL classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for rendering OpenGL in a JUCE window.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
|
||||
class OpenGLFrameBufferImage : public ImagePixelData
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
|
||||
OpenGLTexture::OpenGLTexture()
|
||||
: textureID (0), width (0), height (0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "juce_video",
|
||||
"name": "JUCE video playback and capture classes",
|
||||
"version": "2.0.13",
|
||||
"version": "2.0.14",
|
||||
"description": "Classes for playing video and capturing camera input.",
|
||||
"website": "http://www.juce.com/juce",
|
||||
"license": "GPL/Commercial",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue