nginx/src/os/win32/ngx_thread.h

59 lines
1.2 KiB
C
Raw Normal View History

/*
* Copyright (C) Igor Sysoev
*/
2004-03-04 15:04:55 +08:00
#ifndef _NGX_THREAD_H_INCLUDED_
#define _NGX_THREAD_H_INCLUDED_
#include <ngx_config.h>
#include <ngx_core.h>
typedef HANDLE ngx_tid_t;
typedef DWORD ngx_tls_key_t;
typedef struct {
HANDLE mutex;
ngx_log_t *log;
} ngx_mutex_t;
ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg),
void *arg, ngx_log_t *log);
ngx_int_t ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle);
ngx_err_t ngx_thread_key_create(ngx_tls_key_t *key);
#define ngx_thread_key_create_n "TlsAlloc()"
ngx_err_t ngx_thread_set_tls(ngx_tls_key_t *key, void *data);
#define ngx_thread_set_tls_n "TlsSetValue()"
#define ngx_thread_get_tls TlsGetValue
2004-03-04 15:04:55 +08:00
#define ngx_thread_volatile volatile
#define ngx_log_tid GetCurrentThreadId()
#define NGX_TID_T_FMT "%ud"
2004-03-04 15:04:55 +08:00
ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags);
2004-03-04 15:04:55 +08:00
ngx_int_t ngx_mutex_lock(ngx_mutex_t *m);
ngx_int_t ngx_mutex_trylock(ngx_mutex_t *m);
2004-03-04 15:04:55 +08:00
/* STUB */
#define NGX_MUTEX_LIGHT 0
2004-03-04 15:04:55 +08:00
#define ngx_mutex_unlock(m)
/**/
2004-03-04 15:04:55 +08:00
extern ngx_int_t ngx_threads_n;
2004-03-04 15:04:55 +08:00
#endif /* _NGX_THREAD_H_INCLUDED_ */