Fix build under mixed mode
[jack2.git] / posix / JackPosixMutex.h
blob65af725a22151cc2113e389cae8c8c250a91a41b
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 __JackPosixMutex__
23 #define __JackPosixMutex__
25 #include "JackException.h"
26 #include "JackCompilerDeps.h"
28 #include <pthread.h>
29 #include <stdio.h>
30 #include <assert.h>
32 namespace Jack
34 /*!
35 \brief Mutex abstraction.
38 class SERVER_EXPORT JackBasePosixMutex
41 protected:
43 pthread_mutex_t fMutex;
44 pthread_t fOwner;
46 public:
48 JackBasePosixMutex(const char* name = NULL);
49 virtual ~JackBasePosixMutex();
51 bool Lock();
52 bool Trylock();
53 bool Unlock();
57 class SERVER_EXPORT JackPosixMutex
59 protected:
61 pthread_mutex_t fMutex;
63 public:
65 JackPosixMutex(const char* name = NULL);
66 virtual ~JackPosixMutex();
68 bool Lock();
69 bool Trylock();
70 bool Unlock();
73 } // namespace
75 #endif