Cleanup XCode project.
[jack2.git] / windows / JackWinMutex.h
blob422752b65be2a748c84096f8b553e68379bde82c
1 /*
2 Copyright (C) 2006 Grame
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France
19 grame@grame.fr
22 #ifndef __JackWinMutex__
23 #define __JackWinMutex__
25 #include <windows.h>
27 namespace Jack
29 /*!
30 \brief Mutex abstraction.
32 class JackWinMutex
35 protected:
37 HANDLE fMutex;
39 public:
41 JackWinMutex()
43 // In recursive mode by default
44 fMutex = (HANDLE)CreateMutex(0, FALSE, 0);
47 virtual ~JackWinMutex()
49 CloseHandle(fMutex);
52 void Lock()
54 WaitForSingleObject(fMutex, INFINITE);
57 bool Trylock()
59 return (WAIT_OBJECT_0 == WaitForSingleObject(fMutex, 0));
62 void Unlock()
64 ReleaseMutex(fMutex);
69 } // namespace
71 #endif