mutex.h revision 64d4d313ef4f537408d28fac863cf2a2b0f00175
107739b57f09886b41323c605b0dbda7d2c12522bJens Axboe#ifndef FIO_MUTEX_H 207739b57f09886b41323c605b0dbda7d2c12522bJens Axboe#define FIO_MUTEX_H 307739b57f09886b41323c605b0dbda7d2c12522bJens Axboe 407739b57f09886b41323c605b0dbda7d2c12522bJens Axboe#include <pthread.h> 507739b57f09886b41323c605b0dbda7d2c12522bJens Axboe 6cdd18ad87ed9a3639b76c41cfc9682ad7cce652eJens Axboestruct fio_mutex { 707739b57f09886b41323c605b0dbda7d2c12522bJens Axboe pthread_mutex_t lock; 807739b57f09886b41323c605b0dbda7d2c12522bJens Axboe pthread_cond_t cond; 964d4d313ef4f537408d28fac863cf2a2b0f00175Jens Axboe int value; 1007739b57f09886b41323c605b0dbda7d2c12522bJens Axboe 11cdd18ad87ed9a3639b76c41cfc9682ad7cce652eJens Axboe int mutex_fd; 1207739b57f09886b41323c605b0dbda7d2c12522bJens Axboe}; 1307739b57f09886b41323c605b0dbda7d2c12522bJens Axboe 14cdd18ad87ed9a3639b76c41cfc9682ad7cce652eJens Axboeextern struct fio_mutex *fio_mutex_init(int); 15cdd18ad87ed9a3639b76c41cfc9682ad7cce652eJens Axboeextern void fio_mutex_remove(struct fio_mutex *); 16af4bab56db4f87410c491c356954bbb65171f94dJens Axboeextern void fio_mutex_down(struct fio_mutex *); 1764d4d313ef4f537408d28fac863cf2a2b0f00175Jens Axboeextern void fio_mutex_down_read(struct fio_mutex *); 1864d4d313ef4f537408d28fac863cf2a2b0f00175Jens Axboeextern void fio_mutex_down_write(struct fio_mutex *); 19af4bab56db4f87410c491c356954bbb65171f94dJens Axboeextern void fio_mutex_up(struct fio_mutex *); 2064d4d313ef4f537408d28fac863cf2a2b0f00175Jens Axboeextern void fio_mutex_up_read(struct fio_mutex *); 2164d4d313ef4f537408d28fac863cf2a2b0f00175Jens Axboeextern void fio_mutex_up_write(struct fio_mutex *); 2207739b57f09886b41323c605b0dbda7d2c12522bJens Axboe 2307739b57f09886b41323c605b0dbda7d2c12522bJens Axboe#endif 24