diff src/os/win32/ngx_process_cycle.c @ 2738:ae81441e23f4

implement "-s signal" option for Unix
author Igor Sysoev <igor@sysoev.ru>
date Tue, 21 Apr 2009 20:25:49 +0000
parents d43d73277c5c
children 78342383cb6e
line wrap: on
line diff
--- a/src/os/win32/ngx_process_cycle.c
+++ b/src/os/win32/ngx_process_cycle.c
@@ -1006,50 +1006,11 @@ ngx_single_process_cycle(ngx_cycle_t *cy
 
 
 ngx_int_t
-ngx_signal_process(ngx_cycle_t *cycle, char *sig)
+ngx_os_signal_process(ngx_cycle_t *cycle, char *sig, ngx_int_t pid)
 {
-    size_t            n;
-    HANDLE            ev;
-    ngx_int_t         rc, pid;
-    ngx_file_t        file;
-    ngx_core_conf_t  *ccf;
-    u_char            buf[NGX_INT64_LEN + 2];
-    char              evn[NGX_PROCESS_SYNC_NAME];
-
-    ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "signal process started");
-
-    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
-
-    file.name = ccf->pid;
-    file.log = cycle->log;
-
-    file.fd = ngx_open_file(file.name.data, NGX_FILE_RDONLY,
-                            NGX_FILE_OPEN, NGX_FILE_DEFAULT_ACCESS);
-
-    if (file.fd == NGX_INVALID_FILE) {
-        ngx_log_error(NGX_LOG_ERR, cycle->log, ngx_errno,
-                      ngx_open_file_n " \"%s\" failed", file.name.data);
-        return 1;
-    }
-
-    rc = 1;
-
-    n = ngx_read_file(&file, buf, NGX_INT64_LEN + 2, 0);
-
-    if (n == NGX_ERROR) {
-        goto failed;
-    }
-
-    while (n-- && (buf[n] == CR || buf[n] == LF)) { /* void */ }
-
-    pid = ngx_atoi(buf, ++n);
-
-    if (pid == NGX_ERROR) {
-        ngx_log_error(NGX_LOG_ERR, cycle->log, 0,
-                      "invalid PID number \"%*s\" in \"%s\"",
-                      n, buf, file.name.data);
-        goto failed;
-    }
+    HANDLE     ev;
+    ngx_int_t  rc;
+    char       evn[NGX_PROCESS_SYNC_NAME];
 
     ngx_sprintf((u_char *) evn, "ngx_%s_%ul%Z", sig, pid);
 
@@ -1057,25 +1018,20 @@ ngx_signal_process(ngx_cycle_t *cycle, c
     if (ev == NULL) {
         ngx_log_error(NGX_LOG_ERR, cycle->log, ngx_errno,
                       "OpenEvent(\"%s\") failed", evn);
-        goto failed;
+        return 1;
     }
 
     if (SetEvent(ev) == 0) {
         ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
                       "SetEvent(\"%s\") failed", evn);
+        rc = 1;
+
     } else {
         rc = 0;
     }
 
     ngx_close_handle(ev);
 
-failed:
-
-    if (ngx_close_file(file.fd) == NGX_FILE_ERROR) {
-        ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
-                      ngx_close_file_n " \"%s\" failed", file.name.data);
-    }
-
     return rc;
 }