exit the timeout thread on proper exit

This commit is contained in:
Ralf Teusner
2015-10-28 16:25:53 +01:00
parent bc7c717215
commit 58b137408e

View File

@ -172,7 +172,7 @@ class DockerClient
We need to start a second thread to kill the websocket connection, We need to start a second thread to kill the websocket connection,
as it is impossible to determine whether further input is requested. as it is impossible to determine whether further input is requested.
""" """
Thread.new do @thread = Thread.new do
timeout = @execution_environment.permitted_execution_time.to_i # seconds timeout = @execution_environment.permitted_execution_time.to_i # seconds
sleep(timeout) sleep(timeout)
if container.status != :returned if container.status != :returned
@ -187,6 +187,10 @@ class DockerClient
end end
def exit_container(container) def exit_container(container)
# exit the timeout thread if it is still alive
if(@thread && @thread.alive?)
@thread.exit
end
# if we use pooling and recylce the containers, put it back. otherwise, destroy it. # if we use pooling and recylce the containers, put it back. otherwise, destroy it.
(DockerContainerPool.config[:active] && RECYCLE_CONTAINERS) ? self.class.return_container(container, @execution_environment) : self.class.destroy_container(container) (DockerContainerPool.config[:active] && RECYCLE_CONTAINERS) ? self.class.return_container(container, @execution_environment) : self.class.destroy_container(container)
end end