projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
interface additions (mostly for new generic/toolwin)
[wxWidgets.git]
/
src
/
qt
/
threadsgi.cpp
diff --git
a/src/qt/threadsgi.cpp
b/src/qt/threadsgi.cpp
index 6f602b3324e0e15e0ad1e528fdbc772eb93350a8..66b6b0da7b21b0a62ce8403fb5390eaa7c9c5947 100644
(file)
--- a/
src/qt/threadsgi.cpp
+++ b/
src/qt/threadsgi.cpp
@@
-34,7
+34,7
@@
enum thread_state {
/////////////////////////////////////////////////////////////////////////////
static int p_mainid;
/////////////////////////////////////////////////////////////////////////////
static int p_mainid;
-wxMutex wxMainMutex;
+wxMutex
*
wxMainMutex;
#include "threadgui.inc"
#include "threadgui.inc"
@@
-141,10
+141,22
@@
wxThreadError wxThread::Create()
return THREAD_NO_ERROR;
}
return THREAD_NO_ERROR;
}
-
void
wxThread::Destroy()
+
wxThreadError
wxThread::Destroy()
{
if (p_internal->state == STATE_RUNNING)
p_internal->state = STATE_CANCELED;
{
if (p_internal->state == STATE_RUNNING)
p_internal->state = STATE_CANCELED;
+
+ return THREAD_NO_ERROR;
+}
+
+wxThreadError wxThread::Pause()
+{
+ return THREAD_NO_ERROR;
+}
+
+wxThreadError wxThread::Resume()
+{
+ return THREAD_NO_ERROR;
}
void *wxThread::Join()
}
void *wxThread::Join()
@@
-154,10
+166,10
@@
void *wxThread::Join()
int stat;
if (do_unlock)
int stat;
if (do_unlock)
- wxMainMutex
.
Unlock();
+ wxMainMutex
->
Unlock();
waitpid(p_internal->thread_id, &stat, 0);
if (do_unlock)
waitpid(p_internal->thread_id, &stat, 0);
if (do_unlock)
- wxMainMutex
.
Lock();
+ wxMainMutex
->
Lock();
if (!WIFEXITED(stat) && !WIFSIGNALED(stat))
return 0;
p_internal->state = STATE_IDLE;
if (!WIFEXITED(stat) && !WIFSIGNALED(stat))
return 0;
p_internal->state = STATE_IDLE;
@@
-188,11
+200,21
@@
int wxThread::GetPriority() const
return 0;
}
return 0;
}
-bool wxThreadIsMain()
+bool wxThread
::
IsMain()
{
return (int)getpid() == main_id;
}
{
return (int)getpid() == main_id;
}
+bool wxThread::IsAlive() const
+{
+ return (p_internal->state == STATE_RUNNING);
+}
+
+bool wxThread::IsRunning() const
+{
+ return (p_internal->state == STATE_RUNNING);
+}
+
wxThread::wxThread()
{
p_internal = new wxThreadPrivate();
wxThread::wxThread()
{
p_internal = new wxThreadPrivate();
@@
-216,14
+238,16
@@
class wxThreadModule : public wxModule {
DECLARE_DYNAMIC_CLASS(wxThreadModule)
public:
virtual bool OnInit() {
DECLARE_DYNAMIC_CLASS(wxThreadModule)
public:
virtual bool OnInit() {
+ wxMainMutex = new wxMutex();
wxThreadGuiInit();
p_mainid = (int)getpid();
wxThreadGuiInit();
p_mainid = (int)getpid();
- wxMainMutex
.
Lock();
+ wxMainMutex
->
Lock();
}
virtual void OnExit() {
}
virtual void OnExit() {
- wxMainMutex
.
Unlock();
+ wxMainMutex
->
Unlock();
wxThreadGuiExit();
wxThreadGuiExit();
+ delete wxMainMutex;
}
};
}
};