r125 - /debtorrent/trunk/DebTorrent/RawServer.py
camrdale-guest at users.alioth.debian.org
camrdale-guest at users.alioth.debian.org
Sun Jun 24 00:32:57 UTC 2007
Author: camrdale-guest
Date: Sun Jun 24 00:32:57 2007
New Revision: 125
URL: http://svn.debian.org/wsvn/debtorrent/?sc=1&rev=125
Log:
Improved the SIGINT handling so the program can be reliably stopped.
Modified:
debtorrent/trunk/DebTorrent/RawServer.py
Modified: debtorrent/trunk/DebTorrent/RawServer.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/RawServer.py?rev=125&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/RawServer.py (original)
+++ debtorrent/trunk/DebTorrent/RawServer.py Sun Jun 24 00:32:57 2007
@@ -20,6 +20,7 @@
from threading import Thread, Event
from time import sleep
from clock import clock
+from signal import signal, SIGINT
import sys
try:
True
@@ -302,6 +303,20 @@
self._add_task(a, b, c)
+ def sighandler(self, signalnum, frame):
+ """Properly handle a SIGINT.
+
+ @type signalnum: C{int}
+ @param signalnum: the signal that was received
+ @type frame: C{frame}
+ @param frame: the current stack frame (not used)
+
+ """
+
+ if self.noisy:
+ print "Received signal:", signalnum
+ raise KeyboardInterrupt
+
def listen_forever(self, handler):
"""Start the server listening on sockets and processing tasks.
@@ -311,6 +326,7 @@
"""
self.sockethandler.set_handler(handler)
+ signal(SIGINT, self.sighandler)
try:
while not self.doneflag.isSet():
try:
More information about the Debtorrent-commits
mailing list