1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r
5 #ifndef _MULTITHREAD_H
\r
6 # define _MULTITHREAD_H
\r
8 # include <windows.h>
\r
16 virtual void acquire() = 0;
\r
18 virtual void acquire(int ) {
\r
22 virtual void release() = 0;
\r
27 class CriticalSection : public SyncObject
\r
29 CRITICAL_SECTION m_cs; ///
\r
34 InitializeCriticalSection(&m_cs);
\r
37 ~CriticalSection() {
\r
38 DeleteCriticalSection(&m_cs);
\r
42 EnterCriticalSection(&m_cs);
\r
46 LeaveCriticalSection(&m_cs);
\r
54 SyncObject *m_so; ///
\r
58 Acquire(SyncObject *i_so) : m_so(i_so) {
\r
62 Acquire(SyncObject *i_so, int i_n) : m_so(i_so) {
\r
72 #endif // !_MULTITHREAD_H
\r