Mercurial > hg > octave-nkf > gnulib-hg
changeset 15364:f81fb597c41a
pthread_sigmask: Fix return value.
* lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro.
* lib/pthread_sigmask.c: New file.
* modules/pthread_sigmask (Files): Add it.
(configure.ac): Invoke AC_LIBOBJ.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Fri, 08 Jul 2011 01:51:49 +0200 |
parents | 0bbb2481b43a |
children | 8e2f1d4b9199 |
files | ChangeLog lib/pthread_sigmask.c lib/signal.in.h modules/pthread_sigmask |
diffstat | 4 files changed, 43 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-07-07 Bruno Haible <bruno@clisp.org> + + pthread_sigmask: Fix return value. + * lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro. + * lib/pthread_sigmask.c: New file. + * modules/pthread_sigmask (Files): Add it. + (configure.ac): Invoke AC_LIBOBJ. + 2011-07-07 Eric Blake <eblake@redhat.com> getopt: more portable argv creation
new file mode 100644 --- /dev/null +++ b/lib/pthread_sigmask.c @@ -0,0 +1,29 @@ +/* POSIX compatible signal blocking for threads. + Copyright (C) 2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include <signal.h> + +#include <errno.h> + +int +pthread_sigmask (int how, const sigset_t *new_mask, sigset_t *old_mask) +{ + int ret = sigprocmask (how, new_mask, old_mask); + return (ret < 0 ? errno : 0); +}
--- a/lib/signal.in.h +++ b/lib/signal.in.h @@ -104,8 +104,8 @@ #if @GNULIB_PTHREAD_SIGMASK@ # if @REPLACE_PTHREAD_SIGMASK@ -# undef pthread_sigmask -# define pthread_sigmask sigprocmask +_GL_FUNCDECL_SYS (pthread_sigmask, int, + (int how, const sigset_t *new_mask, sigset_t *old_mask)); # endif #elif defined GNULIB_POSIXCHECK # undef pthread_sigmask
--- a/modules/pthread_sigmask +++ b/modules/pthread_sigmask @@ -2,6 +2,7 @@ POSIX compatible signal blocking for threads. Files: +lib/pthread_sigmask.c m4/pthread_sigmask.m4 Depends-on: @@ -10,6 +11,9 @@ configure.ac: gl_PTHREAD_SIGMASK +if test $REPLACE_PTHREAD_SIGMASK = 1; then + AC_LIBOBJ([pthread_sigmask]) +fi gl_SIGNAL_MODULE_INDICATOR([pthread_sigmask]) Makefile.am: