UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
lock_guard.h
Go to the documentation of this file.
1
5#ifndef LOCK_GUARD_H_
6#define LOCK_GUARD_H_
7
8#ifdef HAVE_CONFIG_H
9#include "config.h"
10#include "config_unix.h"
11#include "config_win32.h"
12#endif // HAVE_CONFIG_H
13
14#include <pthread.h>
15
16namespace ultragrid {
17
20
21template <typename T, int (*lock_func)(T *), int (*unlock_func)(T *)>
23 public:
26 {
27 lock_func(&m_lock);
28 }
29
34
36 {
37 unlock_func(&m_lock);
38 }
39 private:
41};
42
43typedef class generic_lock_guard<pthread_mutex_t, pthread_mutex_lock, pthread_mutex_unlock>
45typedef class generic_lock_guard<pthread_rwlock_t, pthread_rwlock_wrlock, pthread_rwlock_unlock>
47typedef class generic_lock_guard<pthread_rwlock_t, pthread_rwlock_rdlock, pthread_rwlock_unlock>
49
50} // end of namespace ultragrid
51
52#endif // LOCK_GUARD_H_
53
generic_lock_guard(T &lock, lock_guard_retain_ownership_t)
Definition lock_guard.h:30
class generic_lock_guard< pthread_rwlock_t, pthread_rwlock_rdlock, pthread_rwlock_unlock > pthread_rwlock_guard_read
Definition lock_guard.h:47
class generic_lock_guard< pthread_mutex_t, pthread_mutex_lock, pthread_mutex_unlock > pthread_mutex_guard
Definition lock_guard.h:43
class generic_lock_guard< pthread_rwlock_t, pthread_rwlock_wrlock, pthread_rwlock_unlock > pthread_rwlock_guard_write
Definition lock_guard.h:45