aboutsummaryrefslogtreecommitdiff
path: root/fastnn/threads/lib/THThread.h
blob: 75ba417755ccf8fcafddd8dbbb5aeef475c79cdf (plain) (blame)
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
#ifndef TH_THREAD_INC
#define TH_THREAD_INC

typedef struct THThread_ THThread;
typedef struct THMutex_ THMutex;
typedef struct THCondition_ THCondition;
typedef struct THSemaphore_ THSemaphore;

THThread* THThread_new(int (*closure)(void*), void *data);
long THThread_id(THThread *self);
int THThread_free(THThread *self);

THMutex* THMutex_new(void);
THMutex* THMutex_newWithId(long id);
long THMutex_id(THMutex *self);
int THMutex_lock(THMutex *self);
int THMutex_unlock(THMutex *self);
int THMutex_trylock(THMutex *self);
void THMutex_free(THMutex *self);

THCondition* THCondition_new(void);
THCondition* THCondition_newWithId(long id);
long THCondition_id(THCondition *self);
int THCondition_signal(THCondition *self);
int THCondition_wait(THCondition *self, THMutex *mutex);
void THCondition_free(THCondition *self);

THSemaphore* THSemaphore_new(int initValue);
THSemaphore* THSemaphore_newWithId(long id);
long	THSemaphore_id(THSemaphore *self);
int	THSemaphore_signal(THSemaphore *self);
int	THSemaphore_wait(THSemaphore *self);
int	THSemaphore_trywait(THSemaphore *self);
void	THSemaphore_free(THSemaphore *self);

#endif