git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6336
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// for compilers which have it, we should use C RTL function for thread
// creation instead of Win32 API one because otherwise we will have memory
// leaks if the thread uses C RTL (and most threads do)
// for compilers which have it, we should use C RTL function for thread
// creation instead of Win32 API one because otherwise we will have memory
// leaks if the thread uses C RTL (and most threads do)
-#if defined(__VISUALC__) || (defined(__BORLANDC__) && (__BORLANDC__ >= 0x500))
+#if defined(__VISUALC__) || \
+ (defined(__BORLANDC__) && (__BORLANDC__ >= 0x500)) \\
+ (defined(__GNUG__) && defined(__MSVCRT__)
typedef unsigned (__stdcall *RtlThreadStart)(void *);
m_hThread = (HANDLE)_beginthreadex(NULL, 0,
typedef unsigned (__stdcall *RtlThreadStart)(void *);
m_hThread = (HANDLE)_beginthreadex(NULL, 0,
wxThreadInternal::WinThreadStart,
thread, CREATE_SUSPENDED,
(unsigned int *)&m_tid);
wxThreadInternal::WinThreadStart,
thread, CREATE_SUSPENDED,
(unsigned int *)&m_tid);
+#else // compiler doesn't have _beginthreadex
m_hThread = ::CreateThread
(
NULL, // default security
m_hThread = ::CreateThread
(
NULL, // default security
CREATE_SUSPENDED, // flags
&m_tid // [out] thread id
);
CREATE_SUSPENDED, // flags
&m_tid // [out] thread id
);
+#endif // _beginthreadex/CreateThread
if ( m_hThread == NULL )
{
if ( m_hThread == NULL )
{