#ifndef LOCKED_H_ #define LOCKED_H_ #include #define locked_init(x) { .value = (x), .lock = PTHREAD_MUTEX_INITIALIZER } #define locked(T) struct { T value; pthread_mutex_t lock; } #define lockx(x) pthread_mutex_lock(&(x)->lock) #define unlockx(x) pthread_mutex_unlock(&(x)->lock) #endif // LOCKED_H_