root/src/runtime/scoped_mutex_lock.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


#ifndef HALIDE_RUNTIME_SCOPED_MUTEX_LOCK_H
#define HALIDE_RUNTIME_SCOPED_MUTEX_LOCK_H

#include "HalideRuntime.h"

namespace Halide { namespace Runtime { namespace Internal {

// An RAII mutex locking operation
struct ScopedMutexLock {
    halide_mutex *mutex;

    ScopedMutexLock(halide_mutex *mutex) __attribute__((always_inline)) : mutex(mutex) {
        halide_mutex_lock(mutex);
    }

    ~ScopedMutexLock() __attribute__((always_inline)) {
        halide_mutex_unlock(mutex);
    }
};

}}} // namespace Halide::Runtime::Internal

#endif

/* [<][>][^][v][top][bottom][index][help] */