Fix a memory leak when using non-wx threads
The wxThreadSpecificInfo object created by wxThreadSpecificInfo::Get() was only released by the wxThreadInternal's cleanup, which meant that it was leaked if wxThreadSpecificInfo::Get() was called by a thread not created by wxThread, e.g. when using std::async or std::thread. Fix this by simply using C++11 thread_local and removing the entire wxThreadSpecificInfo machinery entirely. See #23535. Closes #23543.
This commit is contained in:
parent
e85b431686
commit
d666d1e222
17 changed files with 15 additions and 272 deletions
|
|
@ -475,7 +475,6 @@ MONODLL_OBJECTS = \
|
|||
$(OBJS)\monodll_tarstrm.o \
|
||||
$(OBJS)\monodll_textbuf.o \
|
||||
$(OBJS)\monodll_textfile.o \
|
||||
$(OBJS)\monodll_threadinfo.o \
|
||||
$(OBJS)\monodll_time.o \
|
||||
$(OBJS)\monodll_timercmn.o \
|
||||
$(OBJS)\monodll_timerimpl.o \
|
||||
|
|
@ -637,7 +636,6 @@ MONOLIB_OBJECTS = \
|
|||
$(OBJS)\monolib_tarstrm.o \
|
||||
$(OBJS)\monolib_textbuf.o \
|
||||
$(OBJS)\monolib_textfile.o \
|
||||
$(OBJS)\monolib_threadinfo.o \
|
||||
$(OBJS)\monolib_time.o \
|
||||
$(OBJS)\monolib_timercmn.o \
|
||||
$(OBJS)\monolib_timerimpl.o \
|
||||
|
|
@ -787,7 +785,6 @@ BASEDLL_OBJECTS = \
|
|||
$(OBJS)\basedll_tarstrm.o \
|
||||
$(OBJS)\basedll_textbuf.o \
|
||||
$(OBJS)\basedll_textfile.o \
|
||||
$(OBJS)\basedll_threadinfo.o \
|
||||
$(OBJS)\basedll_time.o \
|
||||
$(OBJS)\basedll_timercmn.o \
|
||||
$(OBJS)\basedll_timerimpl.o \
|
||||
|
|
@ -918,7 +915,6 @@ BASELIB_OBJECTS = \
|
|||
$(OBJS)\baselib_tarstrm.o \
|
||||
$(OBJS)\baselib_textbuf.o \
|
||||
$(OBJS)\baselib_textfile.o \
|
||||
$(OBJS)\baselib_threadinfo.o \
|
||||
$(OBJS)\baselib_time.o \
|
||||
$(OBJS)\baselib_timercmn.o \
|
||||
$(OBJS)\baselib_timerimpl.o \
|
||||
|
|
@ -7170,9 +7166,6 @@ $(OBJS)\monodll_textbuf.o: ../../src/common/textbuf.cpp
|
|||
$(OBJS)\monodll_textfile.o: ../../src/common/textfile.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monodll_threadinfo.o: ../../src/common/threadinfo.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monodll_time.o: ../../src/common/time.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
@ -9764,9 +9757,6 @@ $(OBJS)\monolib_textbuf.o: ../../src/common/textbuf.cpp
|
|||
$(OBJS)\monolib_textfile.o: ../../src/common/textfile.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monolib_threadinfo.o: ../../src/common/threadinfo.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\monolib_time.o: ../../src/common/time.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
@ -12358,9 +12348,6 @@ $(OBJS)\basedll_textbuf.o: ../../src/common/textbuf.cpp
|
|||
$(OBJS)\basedll_textfile.o: ../../src/common/textfile.cpp
|
||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\basedll_threadinfo.o: ../../src/common/threadinfo.cpp
|
||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\basedll_time.o: ../../src/common/time.cpp
|
||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
@ -12703,9 +12690,6 @@ $(OBJS)\baselib_textbuf.o: ../../src/common/textbuf.cpp
|
|||
$(OBJS)\baselib_textfile.o: ../../src/common/textfile.cpp
|
||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\baselib_threadinfo.o: ../../src/common/threadinfo.cpp
|
||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
$(OBJS)\baselib_time.o: ../../src/common/time.cpp
|
||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
||||
|
|
|
|||
|
|
@ -511,7 +511,6 @@ MONODLL_OBJECTS = \
|
|||
$(OBJS)\monodll_tarstrm.obj \
|
||||
$(OBJS)\monodll_textbuf.obj \
|
||||
$(OBJS)\monodll_textfile.obj \
|
||||
$(OBJS)\monodll_threadinfo.obj \
|
||||
$(OBJS)\monodll_time.obj \
|
||||
$(OBJS)\monodll_timercmn.obj \
|
||||
$(OBJS)\monodll_timerimpl.obj \
|
||||
|
|
@ -682,7 +681,6 @@ MONOLIB_OBJECTS = \
|
|||
$(OBJS)\monolib_tarstrm.obj \
|
||||
$(OBJS)\monolib_textbuf.obj \
|
||||
$(OBJS)\monolib_textfile.obj \
|
||||
$(OBJS)\monolib_threadinfo.obj \
|
||||
$(OBJS)\monolib_time.obj \
|
||||
$(OBJS)\monolib_timercmn.obj \
|
||||
$(OBJS)\monolib_timerimpl.obj \
|
||||
|
|
@ -841,7 +839,6 @@ BASEDLL_OBJECTS = \
|
|||
$(OBJS)\basedll_tarstrm.obj \
|
||||
$(OBJS)\basedll_textbuf.obj \
|
||||
$(OBJS)\basedll_textfile.obj \
|
||||
$(OBJS)\basedll_threadinfo.obj \
|
||||
$(OBJS)\basedll_time.obj \
|
||||
$(OBJS)\basedll_timercmn.obj \
|
||||
$(OBJS)\basedll_timerimpl.obj \
|
||||
|
|
@ -982,7 +979,6 @@ BASELIB_OBJECTS = \
|
|||
$(OBJS)\baselib_tarstrm.obj \
|
||||
$(OBJS)\baselib_textbuf.obj \
|
||||
$(OBJS)\baselib_textfile.obj \
|
||||
$(OBJS)\baselib_threadinfo.obj \
|
||||
$(OBJS)\baselib_time.obj \
|
||||
$(OBJS)\baselib_timercmn.obj \
|
||||
$(OBJS)\baselib_timerimpl.obj \
|
||||
|
|
@ -7627,9 +7623,6 @@ $(OBJS)\monodll_textbuf.obj: ..\..\src\common\textbuf.cpp
|
|||
$(OBJS)\monodll_textfile.obj: ..\..\src\common\textfile.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||
|
||||
$(OBJS)\monodll_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
||||
|
||||
$(OBJS)\monodll_time.obj: ..\..\src\common\time.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\time.cpp
|
||||
|
||||
|
|
@ -10221,9 +10214,6 @@ $(OBJS)\monolib_textbuf.obj: ..\..\src\common\textbuf.cpp
|
|||
$(OBJS)\monolib_textfile.obj: ..\..\src\common\textfile.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||
|
||||
$(OBJS)\monolib_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
||||
|
||||
$(OBJS)\monolib_time.obj: ..\..\src\common\time.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\time.cpp
|
||||
|
||||
|
|
@ -12815,9 +12805,6 @@ $(OBJS)\basedll_textbuf.obj: ..\..\src\common\textbuf.cpp
|
|||
$(OBJS)\basedll_textfile.obj: ..\..\src\common\textfile.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||
|
||||
$(OBJS)\basedll_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
||||
|
||||
$(OBJS)\basedll_time.obj: ..\..\src\common\time.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\time.cpp
|
||||
|
||||
|
|
@ -13160,9 +13147,6 @@ $(OBJS)\baselib_textbuf.obj: ..\..\src\common\textbuf.cpp
|
|||
$(OBJS)\baselib_textfile.obj: ..\..\src\common\textfile.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||
|
||||
$(OBJS)\baselib_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
||||
|
||||
$(OBJS)\baselib_time.obj: ..\..\src\common\time.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\time.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -540,7 +540,6 @@
|
|||
<ClCompile Include="..\..\src\common\tarstrm.cpp" />
|
||||
<ClCompile Include="..\..\src\common\textbuf.cpp" />
|
||||
<ClCompile Include="..\..\src\common\textfile.cpp" />
|
||||
<ClCompile Include="..\..\src\common\threadinfo.cpp" />
|
||||
<ClCompile Include="..\..\src\common\time.cpp" />
|
||||
<ClCompile Include="..\..\src\common\timercmn.cpp" />
|
||||
<ClCompile Include="..\..\src\common\timerimpl.cpp" />
|
||||
|
|
|
|||
|
|
@ -234,9 +234,6 @@
|
|||
<ClCompile Include="..\..\src\common\textfile.cpp">
|
||||
<Filter>Common Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\common\threadinfo.cpp">
|
||||
<Filter>Common Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\common\time.cpp">
|
||||
<Filter>Common Sources</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue