Skip to content

Commit d98ab76

Browse files
committed
PR #186 from rtokarev
1 parent dc0ab6a commit d98ab76

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

lib/tarantool_server.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from gevent import socket
1717
from greenlet import GreenletExit
18+
from threading import Timer
1819

1920
try:
2021
from cStringIO import StringIO
@@ -950,10 +951,14 @@ def kill_current_test(self):
950951
if self.current_test.current_test_greenlet:
951952
gevent.kill(self.current_test.current_test_greenlet)
952953

954+
def kill(self):
955+
color_log('Kill process {0}\n'.format(self.process.pid))
956+
self.process.kill()
957+
953958
def wait_stop(self):
954959
self.process.wait()
955960

956-
def stop(self, silent=True, signal=signal.SIGTERM):
961+
def stop(self, silent=True, signal=signal.SIGTERM, timeout=5):
957962
""" Kill tarantool server using specified signal (SIGTERM by default)
958963
959964
signal - a number of a signal
@@ -987,9 +992,12 @@ def stop(self, silent=True, signal=signal.SIGTERM):
987992
self.process.send_signal(signal)
988993
except OSError:
989994
pass
995+
timer = Timer(timeout, lambda server: server.kill(), [self])
996+
timer.start()
990997
if self.crash_detector is not None:
991998
save_join(self.crash_detector)
992999
self.wait_stop()
1000+
timer.cancel()
9931001

9941002
self.status = None
9951003
if re.search(r'^/', str(self._admin.port)):

0 commit comments

Comments
 (0)