Added wxThread::GetCurrentId(), which returns an ID for the current

thread, even if it is not a wxThread.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2002-01-16 06:28:11 +00:00
parent c17e761dc3
commit 4958ea8f7b
4 changed files with 31 additions and 29 deletions

View File

@@ -159,6 +159,14 @@ Returns the number of system CPUs or -1 if the value is unknown.
\helpref{SetConcurrency}{wxthreadsetconcurrency}
\membersection{wxThread::GetCurrentId}\label{wxthreadgetcurrentid}
\func{static unsigned long}{GetCurrentId}{\void}
Returns the platform specific thread ID of the current thread as a
long. This can be used to uniquely identify threads, even if they are
not wxThreads.
\membersection{wxThread::GetId}\label{wxthreadgetid}
\constfunc{unsigned long}{GetId}{\void}

View File

@@ -286,6 +286,11 @@ public:
// Returns -1 if unknown, number of CPUs otherwise
static int GetCPUCount();
// Get the platform specific thread ID and return as a long. This
// can be used to uniquely identify threads, even if they are not
// wxThreads. This is used by wxPython.
static unsigned long GetCurrentId();
// sets the concurrency level: this is, roughly, the number of threads
// the system tries to schedule to run in parallel. 0 means the
// default value (usually acceptable, but may not yield the best

View File

@@ -647,6 +647,11 @@ int wxThread::GetCPUCount()
return si.dwNumberOfProcessors;
}
unsigned long wxThread::GetCurrentId()
{
return (unsigned long)::GetCurrentThreadId();
}
bool wxThread::SetConcurrency(size_t level)
{
wxASSERT_MSG( IsMain(), _T("should only be called from the main thread") );

View File

@@ -441,30 +441,14 @@ PyObject* wxPyConstructObject(void* ptr,
//---------------------------------------------------------------------------
// TODO: This should really be wxThread::GetCurrentId(), and I will do so
// after I make a quick 2.3.2.1 release.
#ifdef WXP_WITH_THREAD
#ifdef __WXGTK__ // does wxGTK always use pthreads?
#include <unistd.h>
#include <pthread.h>
#endif
inline
unsigned long wxPyGetCurrentThreadId() {
#ifdef __WXMSW__
return (unsigned long)::GetCurrentThreadId();
#endif
#ifdef __WXGTK__ // does wxGTK always use pthreads?
return (unsigned long)pthread_self();
#endif
#ifdef __WXMAC__
ThreadID current ;
MacGetCurrentThread( &current ) ;
return (unsigned long)current;
#endif
return wxThread::GetCurrentId();
}
static
PyThreadState* wxPyGetThreadState() {
unsigned long ctid = wxPyGetCurrentThreadId();