(svn r13417) -Fix (r12945, r13413): freeing the ThreadObjects in a manner that hopefully doesn't cause crashes.

This commit is contained in:
rubidium
2008-06-08 15:27:57 +00:00
parent eac3301b63
commit e43d050730
9 changed files with 36 additions and 51 deletions

View File

@@ -6,7 +6,6 @@
#define THREAD_H
typedef void (*OTTDThreadFunc)(void *);
typedef void (*OTTDThreadTerminateFunc)(class ThreadObject *self);
/**
* A Thread Object which works on all our supported OSes.
@@ -57,10 +56,9 @@ public:
* with optinal params.
* @param proc The procedure to call inside the thread.
* @param param The params to give with 'proc'.
* @param terminate_func The function (or NULL) to call when the thread terminates.
* @return True if the thread was started correctly.
*/
static ThreadObject *New(OTTDThreadFunc proc, void *param, OTTDThreadTerminateFunc terminate_func);
static ThreadObject *New(OTTDThreadFunc proc, void *param);
/**
* Convert the current thread to a new ThreadObject.
@@ -73,12 +71,6 @@ public:
* @return The thread ID of the current active thread.
*/
static uint CurrentId();
/**
* A OTTDThreadTerminateFunc, which cleans up the thread itself
* at termination of the thread (so it becomes self-managed).
*/
static void TerminateCleanup(ThreadObject *self) { delete self; }
};
/**