Python blocking/suspending signals under Linux/OSX using ctypes sigprocmask access
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

pysigset, signal blocking under GNU/Linux & OS X

Provides access to sigprocmask(2) and friends and convenience wrappers to python application developers wanting to SIG_BLOCK and SIG_UNBLOCK signals in critical sections of their code.

Most common usage

from signal import SIGINT, SIGTERM
from pysigset import suspended_signals

with suspended_signals(SIGINT, SIGTERM):
    # Signals are blocked here..
# Any pending signal is fired now..

Also available

    int sigaddset(sigset_t *set, int signum)

    int sigdelset(sigset_t *set, int signum)

    int sigemptyset(sigset_t *set)

    int sigfillset(sigset_t *set)

    int sigismember(const sigset_t *set, int signum)

    int sigpending(sigset_t *set)

    int sigprocmask(int how, const sigset_t *set, sigset_t *oldset)

    int sigsuspend(const sigset_t *mask)

Similar tools

python-signalfd provides access to sigprocmask and signalfd. Its advantage is access to signalfd. Its disadvantage is a compilation requirement.

pysigset has a pythonic interface and requires only ctypes access to or libSystem.B.dylib.


2015-09-22: 0.3.2

  • Python 3 compatibility (thanks Kevin Pouget).
  • Update version, update trove classifiers; adding Python 3, moving to Production/Stable.

2015-05-23: 0.2.2

  • Fix so we can install using again.

2013-07-30: 0.2.1

  • Fix so the RST is displayed on PyPI.

2013-07-30: 0.2

  • Add support for OS X / Darwin (thanks Dan Sully (dsully))
  • Add support for easy uploading to PyPI.

2013-04-15: 0.1

  • Initial release.


Copyright 2013-2015, Walter Doekes (OSSO B.V.)

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