Changeset 65 in svn for trunk/xcache.c


Ignore:
Timestamp:
2006-06-06T11:26:22Z (9 years ago)
Author:
Xuefer
Message:

signal handling fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/xcache.c

    r55 r65  
    17221722/* signal handler */
    17231723static void (*original_sigsegv_handler)(int) = NULL;
    1724 static void xcache_sigsegv_handler(int dummy) /* {{{ */
    1725 {
    1726     if (original_sigsegv_handler == xcache_sigsegv_handler) {
     1724static void xcache_sigsegv_handler(int sig) /* {{{ */
     1725{
     1726    if (original_sigsegv_handler != xcache_sigsegv_handler) {
    17271727        signal(SIGSEGV, original_sigsegv_handler);
    17281728    }
     
    17331733        chdir(xc_coredump_dir);
    17341734    }
    1735     if (original_sigsegv_handler != xcache_sigsegv_handler) {
    1736         original_sigsegv_handler(dummy);
    1737     }
     1735    raise(sig);
    17381736}
    17391737/* }}} */
     
    19021900    }
    19031901
    1904     original_sigsegv_handler = signal(SIGSEGV, xcache_sigsegv_handler);
     1902    if (xc_coredump_dir && xc_coredump_dir[0]) {
     1903        original_sigsegv_handler = signal(SIGSEGV, xcache_sigsegv_handler);
     1904    }
    19051905
    19061906    xc_init_constant(module_number TSRMLS_CC);
     
    19401940#endif
    19411941
    1942     signal(SIGSEGV, original_sigsegv_handler);
     1942    if (xc_coredump_dir && xc_coredump_dir[0]) {
     1943        signal(SIGSEGV, original_sigsegv_handler);
     1944    }
    19431945    if (xc_coredump_dir) {
    19441946        pefree(xc_coredump_dir, 1);
Note: See TracChangeset for help on using the changeset viewer.