haiku/headers/private/shared/PthreadMutexLocker.h

43 lines
709 B
C++

/*
* Copyright 2013, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Ingo Weinhold <ingo_weinhold@gmx.de>
*/
#ifndef _PTHREAD_MUTEX_LOCKER_H
#define _PTHREAD_MUTEX_LOCKER_H
#include <pthread.h>
#include <AutoLocker.h>
namespace BPrivate {
class AutoLockerMutexLocking {
public:
inline bool Lock(pthread_mutex_t* lockable)
{
return pthread_mutex_lock(lockable) == 0;
}
inline void Unlock(pthread_mutex_t* lockable)
{
pthread_mutex_unlock(lockable);
}
};
typedef AutoLocker<pthread_mutex_t, AutoLockerMutexLocking> PthreadMutexLocker;
} // namespace BPrivate
using BPrivate::PthreadMutexLocker;
#endif // _PTHREAD_MUTEX_LOCKER_H