aboutsummaryrefslogtreecommitdiff
path: root/src/os/win32
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/win32')
-rw-r--r--src/os/win32/ngx_atomic.h3
-rw-r--r--src/os/win32/ngx_process_cycle.c8
-rw-r--r--src/os/win32/ngx_thread.c31
-rw-r--r--src/os/win32/ngx_thread.h10
-rw-r--r--src/os/win32/ngx_time.c20
-rw-r--r--src/os/win32/ngx_time.h4
-rw-r--r--src/os/win32/ngx_win32_config.h4
7 files changed, 49 insertions, 31 deletions
diff --git a/src/os/win32/ngx_atomic.h b/src/os/win32/ngx_atomic.h
index 87de57dd1..1e3334548 100644
--- a/src/os/win32/ngx_atomic.h
+++ b/src/os/win32/ngx_atomic.h
@@ -41,6 +41,9 @@ typedef volatile ngx_atomic_uint_t ngx_atomic_t;
#define ngx_atomic_fetch_add(p, add) InterlockedExchangeAdd((long *) p, add)
+#define ngx_memory_barrier()
+
+
void ngx_spinlock(ngx_atomic_t *lock, ngx_uint_t spin);
#define ngx_trylock(lock) (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, 1))
diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c
index 7eabefe5c..be363e258 100644
--- a/src/os/win32/ngx_process_cycle.c
+++ b/src/os/win32/ngx_process_cycle.c
@@ -10,7 +10,7 @@
#include <nginx.h>
-static void *ngx_worker_thread_cycle(void *data);
+static ngx_thread_value_t __stdcall ngx_worker_thread_cycle(void *data);
static long __stdcall ngx_window_procedure(HWND window, u_int message,
u_int wparam, long lparam);
@@ -202,7 +202,7 @@ ngx_single_process_cycle(ngx_cycle_t *cycle)
}
-static void *
+static ngx_thread_value_t __stdcall
ngx_worker_thread_cycle(void *data)
{
ngx_cycle_t *cycle;
@@ -212,10 +212,10 @@ ngx_worker_thread_cycle(void *data)
while (!ngx_quit) {
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle");
- ngx_process_events(cycle);
+ ngx_process_events_and_timers(cycle);
}
- return NULL;
+ return 0;
}
diff --git a/src/os/win32/ngx_thread.c b/src/os/win32/ngx_thread.c
index 0703ac7d4..f8cedd2a5 100644
--- a/src/os/win32/ngx_thread.c
+++ b/src/os/win32/ngx_thread.c
@@ -14,13 +14,13 @@ ngx_int_t ngx_threads_n;
static size_t stack_size;
-ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg), void *arg,
- ngx_log_t *log)
+ngx_err_t
+ngx_create_thread(ngx_tid_t *tid,
+ ngx_thread_value_t (__stdcall *func)(void *arg), void *arg, ngx_log_t *log)
{
ngx_err_t err;
- *tid = CreateThread(NULL, stack_size,
- (LPTHREAD_START_ROUTINE) func, arg, 0, NULL);
+ *tid = CreateThread(NULL, stack_size, func, arg, 0, NULL);
if (*tid != NULL) {
return 0;
@@ -32,7 +32,8 @@ ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg), void *arg,
}
-ngx_int_t ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle)
+ngx_int_t
+ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle)
{
stack_size = size;
@@ -40,7 +41,8 @@ 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)
+ngx_err_t
+ngx_thread_key_create(ngx_tls_key_t *key)
{
*key = TlsAlloc();
@@ -52,7 +54,8 @@ ngx_err_t ngx_thread_key_create(ngx_tls_key_t *key)
}
-ngx_err_t ngx_thread_set_tls(ngx_tls_key_t *key, void *data)
+ngx_err_t
+ngx_thread_set_tls(ngx_tls_key_t *key, void *data)
{
if (TlsSetValue(*key, data) == 0) {
return ngx_errno;
@@ -62,7 +65,8 @@ ngx_err_t ngx_thread_set_tls(ngx_tls_key_t *key, void *data)
}
-ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags)
+ngx_mutex_t *
+ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags)
{
return (ngx_mutex_t *) 1;
}
@@ -70,15 +74,22 @@ ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags)
/* STUB */
-ngx_int_t
+void
ngx_mutex_lock(ngx_mutex_t *m) {
- return NGX_OK;
+ return;
}
+
ngx_int_t
ngx_mutex_trylock(ngx_mutex_t *m) {
return NGX_OK;
}
+
+void
+ngx_mutex_unlock(ngx_mutex_t *m) {
+ return;
+}
+
/**/
diff --git a/src/os/win32/ngx_thread.h b/src/os/win32/ngx_thread.h
index b55dcca4d..3da1dc25c 100644
--- a/src/os/win32/ngx_thread.h
+++ b/src/os/win32/ngx_thread.h
@@ -14,6 +14,7 @@
typedef HANDLE ngx_tid_t;
typedef DWORD ngx_tls_key_t;
+typedef DWORD ngx_thread_value_t;
typedef struct {
@@ -22,8 +23,8 @@ typedef struct {
} ngx_mutex_t;
-ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg),
- void *arg, ngx_log_t *log);
+ngx_err_t ngx_create_thread(ngx_tid_t *tid,
+ ngx_thread_value_t (__stdcall *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);
@@ -41,14 +42,13 @@ ngx_err_t ngx_thread_set_tls(ngx_tls_key_t *key, void *data);
ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags);
-ngx_int_t ngx_mutex_lock(ngx_mutex_t *m);
+void ngx_mutex_lock(ngx_mutex_t *m);
ngx_int_t ngx_mutex_trylock(ngx_mutex_t *m);
+void ngx_mutex_unlock(ngx_mutex_t *m);
/* STUB */
#define NGX_MUTEX_LIGHT 0
-
-#define ngx_mutex_unlock(m)
/**/
diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c
index 04a1af6a3..39ce63336 100644
--- a/src/os/win32/ngx_time.c
+++ b/src/os/win32/ngx_time.c
@@ -8,7 +8,8 @@
#include <ngx_core.h>
-void ngx_gettimeofday(struct timeval *tp)
+void
+ngx_gettimeofday(struct timeval *tp)
{
uint64_t intervals;
FILETIME ft;
@@ -36,29 +37,28 @@ void ngx_gettimeofday(struct timeval *tp)
}
-void ngx_libc_localtime(struct tm *tm)
+void
+ngx_libc_localtime(time_t s, struct tm *tm)
{
- time_t now;
struct tm *t;
- now = ngx_time();
- t = localtime(&now);
+ t = localtime(&s);
*tm = *t;
}
-void ngx_libc_gmtime(struct tm *tm)
+void
+ngx_libc_gmtime(time_t s, struct tm *tm)
{
- time_t now;
struct tm *t;
- now = ngx_time();
- t = gmtime(&now);
+ t = gmtime(&s);
*tm = *t;
}
-ngx_int_t ngx_gettimezone(void)
+ngx_int_t
+ngx_gettimezone(void)
{
TIME_ZONE_INFORMATION tz;
diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h
index 4c1498407..225c38cf0 100644
--- a/src/os/win32/ngx_time.h
+++ b/src/os/win32/ngx_time.h
@@ -40,8 +40,8 @@ typedef FILETIME ngx_mtime_t;
#define NGX_HAVE_GETTIMEZONE 1
ngx_int_t ngx_gettimezone(void);
-void ngx_libc_localtime(struct tm *tm);
-void ngx_libc_gmtime(struct tm *tm);
+void ngx_libc_localtime(time_t s, struct tm *tm);
+void ngx_libc_gmtime(time_t s, struct tm *tm);
void ngx_gettimeofday(struct timeval *tp);
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index a814acbdc..9658c1225 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -8,6 +8,10 @@
#define _NGX_WIN32_CONFIG_H_INCLUDED_
+#define WIN32 0x0400
+#define _WIN32_WINNT 0x0400
+
+
#define STRICT
#define WIN32_LEAN_AND_MEAN