Commits

Robert Brewer committed 790f63a

3.0.x fix: test_states was failing because engine.restart was calling signal.signal in a thread other than the main thread.

  • Participants
  • Parent commits 7ce560c
  • Branches cherrypy-3.0.x

Comments (0)

Files changed (1)

cherrypy/_cpengine.py

             self.stop()
     
     def _set_signals(self):
-        if self.SIGHUP:
-            signal.signal(signal.SIGHUP, self.SIGHUP)
-        if self.SIGTERM:
-            signal.signal(signal.SIGTERM, self.SIGTERM)
-    
+        try:
+            if self.SIGHUP:
+                signal.signal(signal.SIGHUP, self.SIGHUP)
+            if self.SIGTERM:
+                signal.signal(signal.SIGTERM, self.SIGTERM)
+        except ValueError, x:
+            if x.args[0] != 'signal only works in main thread':
+                raise
     
     #                           Drop privileges                           #