Files
@ r10764:5b98d3dd6146
Branch filter:
Location: cpp/openttd-patchpack/source/src/thread.h - annotation
r10764:5b98d3dd6146
2.1 KiB
text/x-c
(svn r15097) -Update: WebTranslator2 update to 2009-01-15 18:47:56
brazilian_portuguese - 8 fixed by tucalipe (8)
danish - 4 fixed, 1 changed by beruic (5)
dutch - 6 fixed by habell (6)
english_US - 76 fixed by WhiteRabbit (76)
french - 7 fixed, 1 changed by glx (8)
greek - 9 fixed, 2 changed by doukas (11)
indonesian - 13 changed by fanioz (13)
norwegian_nynorsk - 24 fixed by runarlu (24)
polish - 5 fixed by xaxa (5)
brazilian_portuguese - 8 fixed by tucalipe (8)
danish - 4 fixed, 1 changed by beruic (5)
dutch - 6 fixed by habell (6)
english_US - 76 fixed by WhiteRabbit (76)
french - 7 fixed, 1 changed by glx (8)
greek - 9 fixed, 2 changed by doukas (11)
indonesian - 13 changed by fanioz (13)
norwegian_nynorsk - 24 fixed by runarlu (24)
polish - 5 fixed by xaxa (5)
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 r5475:3f5cd13d1b63 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 r5475:3f5cd13d1b63 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 r9479:31c691398ec3 r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r9476:dfe3d556ae24 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 r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r8934:d5858392238b r5475:3f5cd13d1b63 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() {};
/**
* Check if the thread is currently running.
* @return True if the thread is running.
*/
virtual bool IsRunning() = 0;
/**
* Waits for the thread to exit.
* @return True if the thread has exited.
*/
virtual bool WaitForStop() = 0;
/**
* Exit this thread.
*/
virtual bool Exit() = 0;
/**
* Join this thread.
*/
virtual void Join() = 0;
/**
* Check if this thread is the current active thread.
* @return True if it is the current active thread.
*/
virtual bool IsCurrent() = 0;
/**
* Get the unique ID of this thread.
* @return A value unique to each thread.
*/
virtual uint GetId() = 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'.
* @return True if the thread was started correctly.
*/
static ThreadObject *New(OTTDThreadFunc proc, void *param);
/**
* Convert the current thread to a new ThreadObject.
* @return A new ThreadObject with the current thread attached to it.
*/
static ThreadObject *AttachCurrent();
/**
* Find the Id of the current running thread.
* @return The thread ID of the current active thread.
*/
static uint CurrentId();
};
/**
* Cross-platform Thread Semaphore. Wait() waits for a Set() of someone else.
*/
class ThreadSemaphore {
public:
static ThreadSemaphore *New();
/**
* Virtual Destructor to avoid compiler warnings.
*/
virtual ~ThreadSemaphore() {};
/**
* Signal all threads that are in Wait() to continue.
*/
virtual void Set() = 0;
/**
* Wait until we are signaled by a call to Set().
*/
virtual void Wait() = 0;
};
#endif /* THREAD_H */
|