+// Locks a pthread mutex, RAII-style.
+class MutexLock {
+public:
+ MutexLock(pthread_mutex_t *mutex);
+ ~MutexLock();
+
+private:
+ pthread_mutex_t *mutex;
+};
+
+MutexLock::MutexLock(pthread_mutex_t *mutex)
+ : mutex(mutex)
+{
+ pthread_mutex_lock(mutex);
+}
+
+MutexLock::~MutexLock()
+{
+ pthread_mutex_unlock(mutex);
+}
+