You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/modules/mi_xmlrpc/abyss_thread.h

71 lines
1.5 KiB

#ifndef THREAD_H_INCLUDED
#define THREAD_H_INCLUDED
/*********************************************************************
** Thread
*********************************************************************/
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,
abyss_bool const useSigchld,
const char ** const errorP);
abyss_bool
ThreadRun(TThread * const threadP);
abyss_bool
ThreadStop(TThread * const threadP);
abyss_bool
ThreadKill(TThread * threadP);
void
ThreadWaitAndRelease(TThread * const threadP);
void
ThreadExit(int const retValue);
void
ThreadRelease(TThread * const threadP);
abyss_bool
ThreadForks(void);
void
ThreadUpdateStatus(TThread * const threadP);
#ifndef WIN32
void
ThreadHandleSigchld(pid_t const pid);
#endif
/*********************************************************************
** Mutex
*********************************************************************/
#ifdef WIN32
typedef HANDLE TMutex;
#else
#include <pthread.h>
typedef pthread_mutex_t TMutex;
#endif /* WIN32 */
abyss_bool MutexCreate(TMutex *m);
abyss_bool MutexLock(TMutex *m);
abyss_bool MutexUnlock(TMutex *m);
abyss_bool MutexTryLock(TMutex *m);
void MutexFree(TMutex *m);
#endif