summaryrefslogtreecommitdiff
path: root/lib/fatal-signal.c
Commit message (Collapse)AuthorAgeFilesLines
* maint: run 'make update-copyright'Paul Eggert2020-12-311-1/+1
|
* thread-optim: Export function-like macros only.Bruno Haible2020-08-121-9/+9
| | | | | | | | | | | | | Suggested by Paul Eggert. * lib/thread-optim.h (gl_multithreaded): New macro. (IF_MT_DECL, IF_MT): Remove macros. * doc/multithread.texi (Multithreading Optimizations): Add a small example. * lib/fatal-signal.c: Update all uses. * lib/clean-temp.c: Likewise. * lib/localename.c: Likewise. * modules/localename (Depends-on): Add stdbool.
* fatal-signal: Use module 'thread-optim'.Bruno Haible2020-08-081-6/+13
| | | | | | | * lib/fatal-signal.c: Include thread-optim.h. (at_fatal_signal, block_fatal_signals, unblock_fatal_signals): Use IF_MT macro. * modules/fatal-signal (Depends-on): Add thread-optim.
* clean-temp: Make multithread-safe, part 2.Bruno Haible2020-07-041-0/+7
| | | | | | | | | | | | | | | | | | | | | * lib/fatal-signal.h: Include <signal.h>. (get_fatal_signal_set): New declaration. * lib/fatal-signal.c (get_fatal_signal_set): New function. * lib/clean-temp.c: Include asyncsafe-spin.h, gl_linked_list.h. (struct closeable_fd): New type. (fatal_signal_set): New variable. (init_fatal_signal_set): New function. (asyncsafe_close, asyncsafe_fclose_variant): New functions. (cleanup_action): Invoke asyncsafe_close instead of close. (create_temp_dir): Invoke init_fatal_signal_set. (register_fd): Use a plain linked list. Add a 'struct closeable_fd *' element. (unregister_fd): Remove function. (close_temp): Cleanup descriptors list on the fly. Invoke init_fatal_signal_set. Invoke asyncsafe_close instead of close. (fclose_variant_temp): New function. (fclose_temp, fwriteerror_temp, close_stream_temp): Use it. * modules/clean-temp (Depends-on): Add asyncsafe-spin, linked-list.
* fatal-signal: Make multithread-safe.Bruno Haible2020-07-041-12/+19
| | | | | | | | * lib/fatal-signal.c (init_fatal_signals): Add comment. (do_init_fatal_signal_set): New function, extracted from init_fatal_signal_set. (fatal_signal_set_once): New variable. (init_fatal_signal_set): Use gl_once.
* fatal-signal: Make multithread-safe.Bruno Haible2020-06-281-0/+7
| | | | * lib/fatal-signal.c (at_fatal_signal): Don't free the old actions array.
* fatal-signal: Make multithread-safe.Bruno Haible2020-06-271-4/+35
| | | | | | | | | * lib/fatal-signal.c: Include glthread/lock.h. (at_fatal_signal_lock): New variable. (at_fatal_signal): Use it. (fatal_signals_block_lock, fatal_signals_block_counter): New variables. (block_fatal_signals, unblock_fatal_signals): Use them. * modules/fatal-signal (Depends-on): Add lock.
* maint: Run 'make update-copyright'Paul Eggert2019-12-311-1/+1
|
* Help making signal handlers more reliable.Bruno Haible2019-03-191-3/+3
| | | | | | | | | | | | | | | * m4/gnulib-common.m4 (gl_COMMON_BODY): Emit definition of _GL_ASYNC_SAFE into config.h. * lib/nanosleep.c (sighandler): Mark as _GL_ASYNC_SAFE. * lib/fatal-signal.h (at_fatal_signal): Add _GL_ASYNC_SAFE marker to argument. * lib/fatal-signal.c (action_t, uninstall_handlers, fatal_signal_handler): Mark as _GL_ASYNC_SAFE. * lib/clean-temp.c (cleanup_action): Mark as _GL_ASYNC_SAFE. * lib/wait-process.c (cleanup_slaves, cleanup_slaves_action): Mark as _GL_ASYNC_SAFE. * lib/c-stack.h (c_stack_action): Add _GL_ASYNC_SAFE marker to argument. * lib/c-stack.c: Add _GL_ASYNC_SAFE markers.
* fatal-signal: Pass the signal number to the action.Bruno Haible2019-03-161-2/+2
| | | | | | | | | | | | * lib/fatal-signal.h (at_fatal_signal): Change the signature. * lib/fatal-signal.c (action_t): Take the signal number as parameter. (fatal_signal_handler): Pass the signal number to the action. * lib/clean-temp.c (cleanup_action): Renamed from cleanup. Take the signal number as parameter. (create_temp_dir): Update. * lib/wait-process.c (cleanup_slaves_action): New function. (register_slave_subprocess): Update at_fatal_signal invocation. * NEWS: Mention the change.
* fatal-signal: Add function that lists the fatal signals.Bruno Haible2019-03-161-0/+17
| | | | | * lib/fatal-signal.h (get_fatal_signals): New declaration. * lib/fatal-signal.c (get_fatal_signals): New function.
* maint: Run 'make update-copyright'Paul Eggert2019-01-011-1/+1
|
* maint: Run 'make update-copyright'Paul Eggert2018-01-011-1/+1
|
* all: prefer https: URLsPaul Eggert2017-09-131-1/+1
|
* version-etc: new yearPaul Eggert2017-01-011-1/+1
| | | | | | | | | | * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
* version-etc: new yearPaul Eggert2016-01-011-1/+1
| | | | | | | | | | * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
* version-etc: new yearPaul Eggert2014-12-311-1/+1
| | | | | | * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'.
* maint: update copyrightEric Blake2014-01-011-1/+1
| | | | | | I ran 'make update-copyright'. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint: update all copyright year number rangesEric Blake2013-01-011-1/+1
| | | | | | Run "make update-copyright". Compare to commit 1602f0a from last year. Signed-off-by: Eric Blake <eblake@redhat.com>
* dup, execute, fatal-signal, etc.: no 'static inline'Paul Eggert2012-11-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/dup.c (dup_nothrow): * lib/execute.c (nonintr_close, nonintr_open): * lib/fatal-signal.c (uninstall_handlers, install_handlers): * lib/fopen.c (orig_fopen): * lib/freadseek.c (freadptrinc): * lib/freopen.c (orig_freopen): * lib/fstat.c (orig_fstat, fstat_nothrow): * lib/get-rusage-as.c (get_rusage_as_via_setrlimit) (get_rusage_as_via_iterator): * lib/get-rusage-data.c (get_rusage_data_via_setrlimit): * lib/getdtablesize.c (_setmaxstdio_nothrow): * lib/isatty.c (_isatty_nothrow): * lib/open.c (orig_open): * lib/read.c (read_nothrow): * lib/sigprocmask.c (signal_nothrow): * lib/spawn-pipe.c (nonintr_close, nonintr_open): * lib/vasnprintf.c (MAX_ROOM_NEEDED): * lib/wait-process.c (unregister_slave_subprocess): * lib/write.c (write_nothrow): Now static, not static inline. * lib/spawn-pipe.c (nonintr_open): Define only if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__. * m4/dup.m4 (gl_PREREQ_DUP): * m4/execute.m4 (gl_EXECUTE): * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): * m4/fopen.m4 (gl_PREREQ_FOPEN): * m4/freadseek.m4 (gl_FUNC_FREADSEEK): * m4/freopen.m4 (gl_PREREQ_FREOPEN): * m4/fstat.m4 (gl_PREREQ_FSTAT): * m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): * m4/isatty.m4 (gl_PREREQ_ISATTY): * m4/open.m4 (gl_PREREQ_OPEN): * m4/read.m4 (gl_PREREQ_READ): * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): * m4/spawn-pipe.m4 (gl_SPAWN_PIPE): * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): * m4/wait-process.m4 (gl_WAIT_PROCESS): * m4/write.m4 (gl_PREREQ_WRITE): * modules/get-rusage-as, modules/get-rusage-data (configure.ac): Do not require AC_C_INLINE.
* fatal-signal: use C prototypes (with explicit void).Akim Demaille2012-02-081-5/+5
| | | | | * lib/fatal-signal.c (uninstall_handlers, install_handlers) (init_fatal_signal_set, block_fatal_signals): Fix signatures.
* Talk about "native Windows API", not "Woe32".Bruno Haible2012-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/accept4.c: Update comments to mention native Windows. * lib/execute.c: Likewise. * lib/fatal-signal.c: Likewise. * lib/localcharset.c: Likewise. * lib/nanosleep.c: Likewise. * lib/nl_langinfo.c: Likewise. * lib/pclose.c: Likewise. * lib/pipe-filter-gi.c: Likewise. * lib/pipe-filter-ii.c: Likewise. * lib/pipe.c: Likewise. * lib/pipe2.c: Likewise. * lib/popen.c: Likewise. * lib/progreloc.c: Likewise. * lib/relocatable.c: Likewise. * lib/sigaction.c: Likewise. * lib/sigprocmask.c: Likewise. * lib/spawn-pipe.h: Likewise. * lib/spawn-pipe.c: Likewise. * lib/spawni.c: Likewise. * lib/stat-time.h: Likewise. * lib/w32spawn.h: Likewise. * tests/test-isatty.c: Likewise. * lib/config.charset: More comments. * doc/gnulib-intro.texi: Mention native Windows. * doc/posix-functions/_Exit_C99.texi: Likewise. * doc/posix-headers/fcntl.texi: Likewise.
* maint: update all copyright year number rangesJim Meyering2012-01-011-1/+1
| | | | Run "make update-copyright".
* maint: update almost all copyright ranges to include 2011Jim Meyering2011-01-011-1/+1
| | | | Run the new "make update-copyright" rule.
* update nearly all FSF copyright year lists to include 2010Jim Meyering2010-01-011-1/+1
| | | | | Use the same procedure as for 2009, outlined in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
* update nearly all FSF copyright year lists to include 2009Jim Meyering2009-12-291-1/+1
| | | | | | | | | | | | | | | | | | The files named by the following are exempted: grep -v '^#' config/srclist.txt|grep -v '^$' \ | while read src dst; do test -f "$dst" && { echo "$dst"; continue; } test -d "$dst" || continue echo "$dst"/$(basename "$src") done > exempt git ls-files tests/unictype >> exempt In the remaining files, convert to all-interval notation if - there is already at least one year interval like 2000-2003 - the file is maintained by me - the file is in lib/uni*/, where that style already prevails Otherwise, use update-copyright's default.
* Use spaces for indentation, not tabs.Bruno Haible2009-12-101-24/+24
|
* Oops, mistake in last commit.Bruno Haible2008-08-311-1/+1
|
* Don't override previously installed signal handlers.Bruno Haible2008-08-311-6/+18
|
* Reenter the fatal_signal_handler in case of nested signal.Bruno Haible2008-06-231-6/+8
|
* Use sigaction module rather than signal().Eric Blake2008-06-211-13/+17
| | | | | | | | | | | | | | | | | | | | | | * modules/c-stack (Depends-on): Add sigaction. * modules/fatal-signal (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/sigprocmask (Files): Add sig-handler.h. * modules/sigaction (Files): Likewise. * lib/sig-handler.h (get_handler): New file, suggested by Paul Eggert. * lib/c-stack.c (SIGACTION_WORKS): Simplify conditions. (c_stack_action) [!SIGACTION_WORKS]: Use sigaction, not signal. * lib/fatal-signal.c (uninstall_handlers, install_handlers) (init_fatal_signals): Likewise. * lib/nanosleep.c (rpl_nanosleep): Likewise. (siginterrupt): Delete fallback. * lib/sigprocmask.c (handler_t): Delete. (old_handlers): Use sa_handler_t instead. * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Drop check for siginterrupt. Signed-off-by: Eric Blake <ebb9@byu.net>
* Add a comment.Bruno Haible2008-06-191-0/+4
|
* Use raise module consistently.Eric Blake2008-06-161-5/+1
| | | | | | | | | | | * modules/fatal-signal (Depends-on): Add raise. * modules/sigprocmask (Depends-on): Likewise. * lib/fatal-signal.c (fatal_signal_handler): Rely on raise. * lib/sigprocmask.c (sigprocmask): Likewise. * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise. * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
* Change copyright notice from GPLv2+ to GPLv3+.Bruno Haible2007-10-071-5/+4
|
* sigprocmask.h is replaced with <signal.h>.Bruno Haible2007-05-011-2/+1
|
* Simplify xmalloc expressions. Add overflow check in xmalloc arguments.Bruno Haible2006-11-061-2/+1
|
* Make it compile in C++ mode.Bruno Haible2006-10-311-0/+1
|
* New module 'sigprocmask'.Bruno Haible2006-10-161-19/+1
|
* Handle the Woe32 SIGBREAK too.Bruno Haible2006-10-051-0/+4
|
* Include <config.h> unconditionally.Bruno Haible2006-09-141-3/+1
|
* Merge from gettext 0.15: Be more careful to use 'volatile'.Bruno Haible2006-07-221-3/+7
|
* Include <unistd.h> unconditionally.Bruno Haible2006-04-241-4/+2
|
* Use a consistent style for including <config.h>.Paul Eggert2005-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * __fpending.c, acl.c, argmatch.c, argp-help.c, argp-parse.c, argp-pvh.c, backupfile.c, basename.c, c-stack.c, calloc.c, check-version.c, cloexec.c, closeout.c, copy-file.c, creat-safer.c, cycle-check.c, dirfd.c, dirname.c, dup-safer.c, dup2.c, euidaccess.c, exclude.c, exitfail.c, fatal-signal.c, fd-safer.c, file-type.c, fileblocks.c, filemode.c, filenamecat.c, findprog.c, fnmatch.c, fopen-safer.c, free.c, fsusage.c, ftruncate.c, full-write.c, fwriteerror.c, getaddrinfo.c, getcwd.c, getdelim.c, getline.c, getlogin_r.c, getndelim2.c, getnline.c, getopt1.c, getpass.c, group-member.c, hard-locale.c, hash-pjw.c, hash.c, human.c, idcache.c, inet_ntop.c, isdir.c, long-options.c, malloc.c, memcasecmp.c, memcmp.c, memcoll.c, memcpy.c, memmove.c, mkdir-p.c, modechange.c, mountlist.c, open-safer.c, physmem.c, pipe-safer.c, pipe.c, poll.c, posixver.c, progname.c, progreloc.c, putenv.c, quote.c, quotearg.c, readline.c, readlink.c, realloc.c, regex.c, rename.c, rmdir.c, rpmatch.c, safe-read.c, same.c, save-cwd.c, savedir.c, sig2str.c, strcspn.c, strerror.c, stripslash.c, strncasecmp.c, strndup.c, strnlen.c, strnlen1.c, strsep.c, strstr.c, strtod.c, strtoimax.c, strtol.c, strverscmp.c, tempname.c, time_r.c, userspec.c, utimecmp.c, version-etc-fsf.c, version-etc.c, wait-process.c, xalloc-die.c, xgetcwd.c, xmalloc.c, xmemcoll.c, xnanosleep.c, xreadlink.c, xsetenv.c, xstrndup.c, xstrtoimax.c, xstrtol.c, xstrtoumax.c, yesno.c: Standardize inclusion of config.h. * __fpending.h, dirfd.h, getdate.h, human.h, inttostr.h: Removed inclusion of config.h from header files. * inttostr.c: Adjusted in-tree users. * timespec.h: Remove superfluous warning to include config.h. * atexit.c, chdir-long.c chown.c, fchown-stub.c, getgroups.c, gettimeofday.c, lchown.c, lstat.c, mkdir.c, mkstemp.c, nanosleep.c, openat.c, raise.c, readtokens0.c, readutmp.c, unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H.
* *** empty log message ***Paul Eggert2005-05-141-1/+1
|
* Portability fix: Don't assume sigaction(). (mingw doesn't have it.)Bruno Haible2004-12-181-0/+2
|
* Signals whose handler is set to SIG_IGN are not fatal.Bruno Haible2004-12-181-5/+34
|
* Improved 'fatal-signal' module.Bruno Haible2003-10-141-11/+32
|
* New module 'fatal-signal'.Bruno Haible2003-10-061-0/+232