Files
@ r12162:c4894f5339c3
Branch filter:
Location: cpp/openttd-patchpack/source/src/thread.h - annotation
r12162:c4894f5339c3
1.2 KiB
text/x-c
(svn r16583) -Update: the order of the language files so it's in sync with english.txt. Normally WT2 would do this, but only with activity for those languages. Now we'd like to the order to match so we can more easily spot import bugs while developing WT3.
r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r9111:983de9c5a848 r6422:5983361e241a r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r9476:dfe3d556ae24 r8934:d5858392238b r10688:9e216b0bd8ab r10688:9e216b0bd8ab r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r9476:dfe3d556ae24 r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r10823:019e0339155a r8934:d5858392238b r8934:d5858392238b r10823:019e0339155a r8934:d5858392238b r5475:3f5cd13d1b63 r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r10824:4036289a0b3d r5475:3f5cd13d1b63 | /* $Id$ */
/** @file thread.h Base of all threads. */
#ifndef THREAD_H
#define THREAD_H
typedef void (*OTTDThreadFunc)(void *);
class OTTDThreadExitSignal { };
/**
* A Thread Object which works on all our supported OSes.
*/
class ThreadObject {
public:
/**
* Virtual destructor to allow 'delete' operator to work properly.
*/
virtual ~ThreadObject() {};
/**
* Exit this thread.
*/
virtual bool Exit() = 0;
/**
* Join this thread.
*/
virtual void Join() = 0;
/**
* Create a thread; proc will be called as first function inside the thread,
* with optinal params.
* @param proc The procedure to call inside the thread.
* @param param The params to give with 'proc'.
* @param thread Place to store a pointer to the thread in. May be NULL.
* @return True if the thread was started correctly.
*/
static bool New(OTTDThreadFunc proc, void *param, ThreadObject **thread = NULL);
};
/**
* Cross-platform Mutex
*/
class ThreadMutex {
public:
static ThreadMutex *New();
/**
* Virtual Destructor to avoid compiler warnings.
*/
virtual ~ThreadMutex() {};
/**
* Begin the critical section
*/
virtual void BeginCritical() = 0;
/**
* End of the critical section
*/
virtual void EndCritical() = 0;
};
#endif /* THREAD_H */
|