git/thread-utils.h

#ifndef THREAD_COMPAT_H
#define THREAD_COMPAT_H

#ifndef NO_PTHREADS
#include <pthread.h>

#define HAVE_THREADS

#else

#define HAVE_THREADS

/*
 * macros instead of typedefs because pthread definitions may have
 * been pulled in by some system dependencies even though the user
 * wants to disable pthread.
 */
#define pthread_t
#define pthread_mutex_t
#define pthread_cond_t
#define pthread_key_t

#define pthread_mutex_init
#define pthread_mutex_lock
#define pthread_mutex_unlock
#define pthread_mutex_destroy

#define pthread_cond_init
#define pthread_cond_wait
#define pthread_cond_signal
#define pthread_cond_broadcast
#define pthread_cond_destroy

#define pthread_key_create
#define pthread_key_delete

#define pthread_create
#define pthread_join

#define pthread_setspecific
#define pthread_getspecific

int dummy_pthread_create(pthread_t *pthread, const void *attr,
			 void *(*fn)(void *), void *data);
int dummy_pthread_join(pthread_t pthread, void **retval);

int dummy_pthread_init(void *);

#endif

int online_cpus(void);
int init_recursive_mutex(pthread_mutex_t*);


#endif /* THREAD_COMPAT_H */