Subj : Re: Challenge: Multithreading & Synchronization To : comp.programming.threads From : Uenal Mutlu Date : Sat May 21 2005 12:59 am And here is a simple mutex implementation for Windows: class mutex { // recursive mutex using CriticalSection of Win32 public: mutex() { InitializeCriticalSection(&cs); } ~mutex() { DeleteCriticalSection(&cs); } void Lock() { EnterCriticalSection(&cs); } void Unlock() { LeaveCriticalSection(&cs); } bool TryLock() { return TryEnterCriticalSection(&cs) != 0; } private: CRITICAL_SECTION cs; }; class Locker { public: Locker(mutex& Am) : m(Am) { m.Lock(); } ~Locker() { m.Unlock(); } private: mutex& m; }; .