1 // ----------------------------------------------------------------------------
2 // Copyright (C) 2014
3 //              David Freese, W1HKJ
4 //
5 // This file is part of flmsg
6 //
7 // flrig is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // flrig is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 // ----------------------------------------------------------------------------
20 
21 #ifndef THREADS_H_
22 #define THREADS_H_
23 
24 #include <config.h>
25 
26 #include <pthread.h>
27 #include <stdint.h>
28 
29 //#include "fl_lock.h"
30 
31 /// This ensures that a mutex is always unlocked when leaving a function or block.
32 class guard_lock
33 {
34 public:
35 	guard_lock(pthread_mutex_t* m);
36 	~guard_lock(void);
37 private:
38 	pthread_mutex_t* mutex;
39 };
40 
41 #endif // !THREADS_H_
42