sigsafe is a C library for safely, reliably, and promptly handling signals delivered to specific threads without significant overhead. This is a common and challenging problem, and sigsafe can help. Please see the API documentation for examples.
sigsafe includes code, documentation, a performance benchmark, and a correctness tester that exhaustively searches for race conditions with the ptrace(2) facility.
sigsafe contains architecture- and OS-specific assembly code. It is currently available for:
- Darwin/ppc (OS X)
- FreeBSD/alpha
- FreeBSD/i386
- Linux/alpha
- Linux/i386
- Linux/ia64
- HP-UX/ia64
- HP-UX/parisc
- NetBSD/i386
- Solaris/i386
- Solaris/sparc
- Tru64/alpha
sigsafe is released under the MIT license.
You are welcome to:
- browse the API documentation online.
- look at the README.
- download the latest (0.1.3) release. The race condition tester is not working on most platforms, but the core code works when tested manually.
- browse the head revision in my Subversion repository.
- watch the project on freshmeat, advogato, or sourceforge.
- join the discussion on the mailing list or read the archives. Discussion of sigsafe development, usage or any other method of safe signal handling is welcome here.
- watch the commits mailing list or read the archives.
- email me with constructive criticism, patches, compliments, flames, etc.
Copyright © 2003–2005 Scott Lamb <slamb@slamb.org>.