add detached thread abstraction.

git-svn-id: http://svn.openzap.org/svn/openzap/trunk@56 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
Michael Jerris
2007-05-21 02:40:06 +00:00
parent ff24de2bb8
commit 8546385c61
4 changed files with 156 additions and 41 deletions

View File

@@ -21,17 +21,19 @@
#ifndef _ZAP_THREADMUTEX_H
#define _ZAP_THREADMUTEX_H
typedef struct mutex mutex_t;
#include "openzap.h"
typedef enum mutex_status {
MUTEX_SUCCESS,
MUTEX_FAILURE
} mutex_status_t;
typedef struct zap_mutex zap_mutex_t;
typedef struct zap_thread zap_thread_t;
typedef void *(*zap_thread_function_t) (zap_thread_t *, void *);
mutex_status_t zap_mutex_create(mutex_t **mutex);
mutex_status_t zap_mutex_destroy(mutex_t *mutex);
mutex_status_t zap_mutex_lock(mutex_t *mutex);
mutex_status_t zap_mutex_trylock(mutex_t *mutex);
mutex_status_t zap_mutex_unlock(mutex_t *mutex);
zap_status_t zap_thread_create_detached(zap_thread_function_t func, void *data);
zap_status_t zap_thread_create_detached_ex(zap_thread_function_t func, void *data, zap_size_t stack_size);
void zap_thread_override_default_stacksize(zap_size_t size);
zap_status_t zap_mutex_create(zap_mutex_t **mutex);
zap_status_t zap_mutex_destroy(zap_mutex_t *mutex);
zap_status_t zap_mutex_lock(zap_mutex_t *mutex);
zap_status_t zap_mutex_trylock(zap_mutex_t *mutex);
zap_status_t zap_mutex_unlock(zap_mutex_t *mutex);
#endif

View File

@@ -58,7 +58,10 @@ typedef enum {
ZAP_SUCCESS,
ZAP_FAIL,
ZAP_MEMERR,
ZAP_TIMEOUT
ZAP_TIMEOUT,
ZAP_NOTIMPL,
ZAP_STATUS_COUNT
} zap_status_t;
typedef enum {
@@ -91,7 +94,9 @@ typedef enum {
ZAP_COMMAND_SET_DTMF_ON_PERIOD,
ZAP_COMMAND_GET_DTMF_ON_PERIOD,
ZAP_COMMAND_SET_DTMF_OFF_PERIOD,
ZAP_COMMAND_GET_DTMF_OFF_PERIOD
ZAP_COMMAND_GET_DTMF_OFF_PERIOD,
ZAP_COMMAND_COUNT
} zap_command_t;
typedef enum {
@@ -104,7 +109,9 @@ typedef enum {
ZAP_CHAN_TYPE_DQ921,
ZAP_CHAN_TYPE_DQ931,
ZAP_CHAN_TYPE_FXS,
ZAP_CHAN_TYPE_FXO
ZAP_CHAN_TYPE_FXO,
ZAP_CHAN_TYPE_COUNT
} zap_chan_type_t;
typedef enum {
@@ -186,7 +193,9 @@ typedef zap_status_t (*zint_write_t) ZINT_WRITE_ARGS ;
typedef enum {
ZAP_EVENT_NONE,
ZAP_EVENT_DTMF
ZAP_EVENT_DTMF,
ZAP_EVENT_COUNT
} zap_event_type_t;
typedef struct zap_span zap_span_t;