aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/unix')
-rw-r--r--src/os/unix/ngx_atomic.h5
-rw-r--r--src/os/unix/ngx_files.h6
-rw-r--r--src/os/unix/ngx_process_cycle.c21
3 files changed, 29 insertions, 3 deletions
diff --git a/src/os/unix/ngx_atomic.h b/src/os/unix/ngx_atomic.h
index 3dfce74c4..50d6354d5 100644
--- a/src/os/unix/ngx_atomic.h
+++ b/src/os/unix/ngx_atomic.h
@@ -154,7 +154,7 @@ static ngx_inline ngx_atomic_uint_t
ngx_atomic_cmp_set(ngx_atomic_t *lock, ngx_atomic_uint_t old,
ngx_atomic_uint_t set)
{
- if (*lock == old {
+ if (*lock == old) {
*lock = set;
return 1;
}
@@ -174,8 +174,9 @@ ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add)
return old;
}
-#endif
+#define ngx_memory_barrier()
+#endif
void ngx_spinlock(ngx_atomic_t *lock, ngx_uint_t spin);
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h
index 57f53eb0e..a361fe4cd 100644
--- a/src/os/unix/ngx_files.h
+++ b/src/os/unix/ngx_files.h
@@ -44,7 +44,6 @@ ngx_fd_t ngx_open_tempfile(u_char *name, ngx_uint_t persistent);
ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset);
#define ngx_read_file_n "read()"
-
ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
off_t offset);
@@ -52,6 +51,11 @@ ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
off_t offset, ngx_pool_t *pool);
+#define ngx_write_fd write
+#define ngx_linefeed(p) *p++ = LF;
+#define NGX_LINEFEED_SIZE 1
+
+
#define ngx_rename_file rename
#define ngx_rename_file_n "rename"
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index f4ec06f9b..e0f967fc0 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -276,6 +276,13 @@ ngx_single_process_cycle(ngx_cycle_t *cycle)
ngx_process_events_and_timers(cycle);
if (ngx_terminate || ngx_quit) {
+
+ for (i = 0; ngx_modules[i]; i++) {
+ if (ngx_modules[i]->exit_process) {
+ ngx_modules[i]->exit_process(cycle);
+ }
+ }
+
ngx_master_exit(cycle);
}
@@ -623,10 +630,18 @@ ngx_reap_childs(ngx_cycle_t *cycle)
static void
ngx_master_exit(ngx_cycle_t *cycle)
{
+ ngx_uint_t i;
+
ngx_delete_pidfile(cycle);
ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exit");
+ for (i = 0; ngx_modules[i]; i++) {
+ if (ngx_modules[i]->exit_master) {
+ ngx_modules[i]->exit_master(cycle);
+ }
+ }
+
/*
* we do not destroy cycle->pool here because a signal handler
* that uses cycle->log can be called at this point
@@ -735,6 +750,12 @@ ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
ngx_wakeup_worker_threads(cycle);
#endif
+ for (i = 0; ngx_modules[i]; i++) {
+ if (ngx_modules[i]->exit_process) {
+ ngx_modules[i]->exit_process(cycle);
+ }
+ }
+
c = cycle->connections;
for (i = 0; i < cycle->connection_n; i++) {
if (c[i].fd != -1