freeswitch/libs/xmlrpc-c/lib/abyss/src/thread.h

77 lines
1.5 KiB
C
Raw Normal View History

#ifndef THREAD_H_INCLUDED
#define THREAD_H_INCLUDED
/*********************************************************************
** Thread
*********************************************************************/
#include "bool.h"
typedef struct abyss_thread TThread;
void
ThreadPoolInit(void);
typedef void TThreadProc(void * const userHandleP);
typedef void TThreadDoneFn(void * const userHandleP);
void
ThreadCreate(TThread ** const threadPP,
void * const userHandle,
TThreadProc * const func,
TThreadDoneFn * const threadDone,
bool const useSigchld,
const char ** const errorP);
bool
ThreadRun(TThread * const threadP);
bool
ThreadStop(TThread * const threadP);
bool
ThreadKill(TThread * const threadP);
void
ThreadWaitAndRelease(TThread * const threadP);
void
ThreadExit(int const retValue);
void
ThreadRelease(TThread * const threadP);
bool
ThreadForks(void);
void
ThreadUpdateStatus(TThread * const threadP);
#ifndef WIN32
void
ThreadHandleSigchld(pid_t const pid);
#endif
/*********************************************************************
** Mutex
*********************************************************************/
typedef struct abyss_mutex TMutex;
bool
MutexCreate(TMutex ** const mutexP);
bool
MutexLock(TMutex * const mutexP);
bool
MutexUnlock(TMutex * const mutexP);
bool
MutexTryLock(TMutex * const mutexP);
void
MutexDestroy(TMutex * const mutexP);
#endif