manpagez: man pages & more
info gpgme
Home | html | info | man

File: gpgme.info,  Node: Signal Handling,  Next: Multi-Threading,  Prev: Library Version Check,  Up: Preparation

2.7 Signal Handling
===================

The GPGME library communicates with child processes (the crypto
engines).  If a child process dies unexpectedly, for example due to a
bug, or system problem, a ‘SIGPIPE’ signal will be delivered to the
application.  The default action is to abort the program.  To protect
against this, ‘gpgme_check_version’ sets the ‘SIGPIPE’ signal action to
‘SIG_IGN’, which means that the signal will be ignored.

   GPGME will only do that if the signal action for ‘SIGPIPE’ is
‘SIG_DEF’ at the time ‘gpgme_check_version’ is called.  If it is
something different, ‘GPGME’ will take no action.

   This means that if your application does not install any signal
handler for ‘SIGPIPE’, you don’t need to take any precautions.  If you
do install a signal handler for ‘SIGPIPE’, you must be prepared to
handle any ‘SIGPIPE’ events that occur due to GPGME writing to a defunct
pipe.  Furthermore, if your application is multi-threaded, and you
install a signal action for ‘SIGPIPE’, you must make sure you do this
either before ‘gpgme_check_version’ is called or afterwards.

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.