[Pcsclite-cvs-commit] r5692 - /trunk/PCSC/src/pcscdaemon.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Tue Apr 5 08:11:23 UTC 2011
Author: rousseau
Date: Tue Apr 5 08:11:13 2011
New Revision: 5692
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5692
Log:
signal_trap(): exit immediatly in case of SIGTERM
Closes Debian bug #620305 "pcscd slows down sutdown/restart"
Modified:
trunk/PCSC/src/pcscdaemon.c
Modified: trunk/PCSC/src/pcscdaemon.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/pcscdaemon.c?rev=5692&op=diff
==============================================================================
--- trunk/PCSC/src/pcscdaemon.c (original)
+++ trunk/PCSC/src/pcscdaemon.c Tue Apr 5 08:11:13 2011
@@ -459,8 +459,8 @@
* signal_trap() does just set a global variable used by the main loop
*/
(void)signal(SIGQUIT, signal_trap);
- (void)signal(SIGTERM, signal_trap);
- (void)signal(SIGINT, signal_trap);
+ (void)signal(SIGTERM, signal_trap); /* default kill signal & init round 1 */
+ (void)signal(SIGINT, signal_trap); /* sent by Ctrl-C */
/* exits on SIGALARM to allow pcscd to suicide if not used */
(void)signal(SIGALRM, signal_trap);
@@ -674,6 +674,14 @@
static void signal_trap(int sig)
{
Log2(PCSC_LOG_INFO, "Received signal: %d", sig);
+
+ /* do not wait if asked to terminate
+ * avoids waiting after the reader(s) in shutdown for example */
+ if (SIGTERM == sig)
+ {
+ Log1(PCSC_LOG_INFO, "Direct suicide");
+ at_exit();
+ }
/* the signal handler is called several times for the same Ctrl-C */
if (AraKiri == FALSE)
More information about the Pcsclite-cvs-commit
mailing list