1
0
Fork 0
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:
jules 2011-12-22 11:40:34 +00:00
parent b00ae44410
commit 43d9a4eb16
53 changed files with 204 additions and 20 deletions

View file

@ -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,

View file

@ -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">

View file

@ -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">

View file

@ -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"/>

View file

@ -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>

View file

@ -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,

View file

@ -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">

View file

@ -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">

View file

@ -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"/>

View file

@ -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>

View file

@ -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,

View file

@ -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,

View file

@ -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">

View file

@ -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">

View file

@ -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,

View file

@ -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">

View file

@ -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">

View file

@ -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,

View file

@ -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">

View file

@ -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,

View file

@ -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">

View file

@ -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">

View file

@ -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,

View file

@ -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,

View file

@ -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">

View file

@ -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"/>

View file

@ -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>

View file

@ -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,

View file

@ -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">

View file

@ -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"/>

View file

@ -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>

View file

@ -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",

View file

@ -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",

View file

@ -23,7 +23,6 @@
==============================================================================
*/
AudioFormatManager::AudioFormatManager()
: defaultFormatIndex (0)
{

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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

View file

@ -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",

View file

@ -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.

View 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__

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -23,7 +23,6 @@
==============================================================================
*/
class OpenGLFrameBufferImage : public ImagePixelData
{
public:

View file

@ -23,7 +23,6 @@
==============================================================================
*/
OpenGLTexture::OpenGLTexture()
: textureID (0), width (0), height (0)
{

View file

@ -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",