Commit Graph

132 Commits

Author SHA1 Message Date
Vadim Zeitlin
3fb8a2bcfb Add missing critical section locking before accessing shared variable.
WinThreadStart() in wxMSW wxThread implementation accessed the variable
containing the thread state without locking which was wrong, do it only inside
the critical section.

Notice that there is still an unavoidable race condition between exiting the
thread and starting it, so it's not clear at all if we should try to avoid
calling DoThreadStart() here.

Closes #14865.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-04 00:39:33 +00:00
Vadim Zeitlin
66180c31f6 Call wxThread::OnExit() from wxThread::Exit() in wxMSW too.
Exit() is documented to call OnExit() and the pthreads version of wxThread did
behave as documented, so make wxMSW follow it as well and explicitly call
OnExit() before exiting the thread.

Closes #14212.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-14 22:37:34 +00:00
Vadim Zeitlin
2415cf6725 Remove support for MetroWerks CodeWarrior compiler.
This compiler doesn't exist any more and was probably unsupported even in 2.8,
let alone 2.9, so remove all the __MWERKS__ tests to simplify things.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:11 +00:00
Vadim Zeitlin
b9697cb410 Added wxCriticalSection::TryEnter() method.
This is similar to wxMutex::TryLock() and useful for the same reasons.

Closes #13638.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-01 14:22:15 +00:00
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.

Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").

Closes #13063 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 14:17:38 +00:00
Vadim Zeitlin
b95a7c3144 Allow wxThread::Wait() and Delete() to block, even under wxMSW.
Add "wait mode" parameter to these methods which can be used to make them
block even under wxMSW where they currently dispatch messages when called
which can be totally unexpected.

Do keep the old behaviour for compatibility however, although it will change i
3.2.

Closes #12998.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-14 11:54:32 +00:00
Vadim Zeitlin
486fa39656 Don't crash when waiting for thread termination in wxMSW.
The changes of r65882 adding wxThread::On{Delete,Kill}() introduced a bug
which made normal wxThread::Wait() crash.

Fix it by calling OnDelete() only if we're really deleting a thread.

Closed #12627, see #9046.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-28 10:27:26 +00:00
Vadim Zeitlin
df191bfe39 Added wxThread::OnKill() and OnDelete() callbacks.
Call OnXXX() from wxThread::Kill() and Delete() respectively to allow the
thread being terminated perform some cleanup.

Closes #9046.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-23 14:10:12 +00:00
Vadim Zeitlin
f48a115976 No real changes, just use const_cast<> instead of C casts.
Replace many comments indicating that the C cast used was really a
const_cast<> with the proper cast itself. There is no reason to not use it any
longer, all the supported compilers understand it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-22 14:17:30 +00:00
Francesco Montorsi
89a76d5d2c make POSIX and Windows implementation of wxThread::Run() coherently assert when trying to Run() a thread twice; add a test for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-25 13:55:36 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
3cc631903f compilation fix after last commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-11 21:15:58 +00:00
Vadim Zeitlin
f922638305 Added wxThread::GetMainId().
This is useful for checking if a message was logged from the main thread or not and also allows us to implement IsMain() by comparing GetCurrentId() with GetMainId() in all ports and avoid repetition.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-11 20:46:55 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
1654ef4c98 fix handling of abandoned mutexes in wxMutex::Wait[Timeout]() (#10236)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-04 00:22:04 +00:00
Robert Roebling
375f364ef2 Test for reentrance into non-recursive wxMutex. If it happens, yield dead lock error, don't hang
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-08 08:00:03 +00:00
Robert Roebling
424c9ce771 Made wxMSW wxMutex non-recursive by checking reentrance
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-05 08:54:09 +00:00
Robert Roebling
3ad41c280f Add wxCRITSEC_DEFAULT and NON_RECURSIVE styles, updated and restored wxThread and related docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-05 08:06:07 +00:00
Vadim Zeitlin
d79c9c6791 _beginthreadex() entry point should really return unsigned and not wxUIntPtr even if this means that it's impossible to return pointers from wxThread::Entry() under Win64 (#9727)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54658 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-16 02:49:12 +00:00
Vadim Zeitlin
8cd8a7feb7 wxThread::Sleep() is the same as wxMilliSleep() on all platforms but Mac (and maybe it should be the same thing there as well)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-12 02:28:46 +00:00
Vadim Zeitlin
3f49efdba9 /Wp64 warnings fixes (mostly simply use wxUIntToPtr/wxPtrToUInt() instead of C casts)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-26 17:55:19 +00:00
Paul Cornett
d254213eb2 add MutexGuiEnter/Leave to wxAppTraits, integrate native GTK+ GUI locking
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-17 05:37:00 +00:00
Vadim Zeitlin
fdb9d2b867 fix SetProcessAffinityMask() prototype (was missing WINAPI, i.e. the all important stdcall) (patch 1731976)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-09 10:53:26 +00:00
Vadim Zeitlin
a6c2e2c765 include wx/msw/missing.h after wx/msw/private.h, otherwise we get warnings when compiling without PCH (replaces patch 1674510)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-16 00:56:28 +00:00
Vadim Zeitlin
696d13ee0e added wxMutex::LockTimeout() (modified patch 1671637)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-08 00:22:11 +00:00
Włodzimierz Skiba
261fb04124 Make QS_ALLPOSTMESSAGE available everywhere regardless SDK limitations.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-13 16:30:53 +00:00
Vadim Zeitlin
e570a44b37 don't wake up on Windows messages when waiting for thread termination in a console application as this results in an infinite loop because we never process them and thus they remain in the queue for always (modified patch 1615875; closes bugs 877128)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-02 22:46:48 +00:00
Vadim Zeitlin
a0020fcd54 make wxSemaphore::Post() return wxSEMA_OVERFLOW as documented (patch 1557642)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-03 15:05:40 +00:00
Włodzimierz Skiba
57bd4c6031 Include wx/msw/wrap*.h according to pch support (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-07 19:01:45 +00:00
Włodzimierz Skiba
02761f6cd4 Include wx/module.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-31 19:31:43 +00:00
Włodzimierz Skiba
670f993563 Include wx/app.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-28 12:44:37 +00:00
Vadim Zeitlin
5b53617d42 correction to exception handling in threads: call wxThread::OnExit() always
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-27 11:31:21 +00:00
Vadim Zeitlin
d3f8206ce7 handle fatal exceptions in the other threads (based on patch 1459813 by Carl-Friedrich Braun)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-27 10:17:13 +00:00
Vadim Zeitlin
031943ac4c changed DoMessageFromThreadWait() to not block if there are no messages, this avoids the need for sending a dummy WM_NULL from the thread wait loop (replaces patch 1459812)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-08 22:51:42 +00:00
Michael Wetherell
8d7eaf9140 Warning fixes for VC5 (Igor Korot)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-02-12 12:16:56 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Włodzimierz Skiba
0c0d1521c0 Helpers in disabling warnings for unused params.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-07-01 13:39:03 +00:00
Julian Smart
f54632db33 Generalised WinCE fix for other platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-05-17 11:41:46 +00:00
Julian Smart
a92e7f3047 WinCE fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-05-13 11:52:03 +00:00
Vadim Zeitlin
0f00be4b33 Wait() should now return correct exit code even if thread state was EXITED (replaces patch 1166425)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-03-23 21:29:04 +00:00
Włodzimierz Skiba
1c6f24145e Correct fix to the compile time assert under OW. Kudos to Vadim to the tip.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-10-20 01:20:58 +00:00
Włodzimierz Skiba
7da60d7c18 OW warning fix. Our compile time asserts warns when used within function and dedicated #pragma seems not influence it so they are moved from functions into global space as near as possible.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-10-19 21:00:17 +00:00
Włodzimierz Skiba
7010702f63 WinCE fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-07-20 11:11:46 +00:00
Julian Smart
655719367a Use old licence name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e Name and version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00
Robin Dunn
5b65f1364d If the threads module hasn't been initialized yet then we can assume
the IsMain == true.  This allows wxASSERTs that happen before the
wxApp is created (as can easily happen in wxPython unfortunatly) to
behave normally instead of just calling wxTrap.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-18 19:59:18 +00:00
Vadim Zeitlin
975b6bcf9b Win64 compilation fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-02-10 13:02:51 +00:00
Vadim Zeitlin
7d0bf46a34 consume less CPU while waiting for thread to terminate (patch 883268)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-02-07 13:49:18 +00:00
Dimitri Schoolwerth
5eba439479 Applied patch #877159: Joinable threads might crash app if deleted right after Wait.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25179 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-01-15 01:20:42 +00:00