/usr/include/sidl_thread.h is in libsidl-dev 1.4.0.dfsg-8build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | /*
* sidl_thread.h -- generic thread & mutex stuff used in Babel
*
*/
/*
* Recursive Mutex -- Allow the same thread to lock the mutex
* recursively, but require a matching number of unlocks
*
* Note: this is not recommended by Lewis & Berg (Multithreaded
* Programming w/ pthreads). I tried using the implementation they
* provide anyway, but the liscencing is not clear... so I wrote my own.
*/
#ifndef SIDL_THREAD_H
#define SIDL_THREAD_H
#include "babel_config.h"
#ifdef HAVE_PTHREAD
#include <pthread.h>
#ifdef __cplusplus
extern "C" { /* } */
#endif
struct sidl_recursive_mutex_t {
pthread_mutex_t lock; /* lock for structure */
pthread_cond_t cv; /* waiting list control */
int count; /* times locked recursively */
pthread_t owner; /* thread or NULL_TID */
};
#ifndef NULL_TID
#define NULL_TID (pthread_t) 0
#endif /* NULL_TID */
#define SIDL_RECURSIVE_MUTEX_INITIALIZER \
{PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, NULL_TID}
int sidl_recursive_mutex_init( struct sidl_recursive_mutex_t* m );
int sidl_recursive_mutex_destroy( struct sidl_recursive_mutex_t * m );
int sidl_recursive_mutex_lock( struct sidl_recursive_mutex_t* m );
int sidl_recursive_mutex_unlock( struct sidl_recursive_mutex_t * m );
#ifdef __cplusplus
}
#endif
#endif /* HAVE_PTHREAD */
#endif /* defined (SIDL_THREAD_H) */
|