This commit is contained in:
Kovid Goyal 2008-07-19 08:39:02 -07:00
parent 1a45fc3d58
commit 897c75dbf8

View File

@ -25,7 +25,7 @@ the worker interrupts the job and dies. The sending of progress and console outp
is buffered and asynchronous to prevent the job from being IO bound. is buffered and asynchronous to prevent the job from being IO bound.
''' '''
import sys, os, gc, cPickle, traceback, atexit, cStringIO, time, signal, \ import sys, os, gc, cPickle, traceback, atexit, cStringIO, time, signal, \
subprocess, socket, collections, binascii, re, tempfile, thread, tempfile subprocess, socket, collections, binascii, re, thread, tempfile
from select import select from select import select
from functools import partial from functools import partial
from threading import RLock, Thread, Event from threading import RLock, Thread, Event
@ -494,6 +494,11 @@ class Result(object):
def __iter__(self): def __iter__(self):
return iter((self.result, self.exception, self.traceback)) return iter((self.result, self.exception, self.traceback))
def remove_ipc_socket(path):
os = __import__('os')
if os.path.exists(path):
os.path.unlink(path)
class Server(Thread): class Server(Thread):
KILL_RESULT = Overseer.KILL_RESULT KILL_RESULT = Overseer.KILL_RESULT
@ -514,7 +519,7 @@ class Server(Thread):
except socket.error: except socket.error:
self.port += (1 if iswindows else '1') self.port += (1 if iswindows else '1')
if not iswindows: if not iswindows:
atexit.register(os.unlink, self.port) atexit.register(remove_ipc_socket, self.port)
self.server_socket.listen(5) self.server_socket.listen(5)
self.number_of_workers = number_of_workers self.number_of_workers = number_of_workers
self.pool, self.jobs, self.working, self.results = [], collections.deque(), [], {} self.pool, self.jobs, self.working, self.results = [], collections.deque(), [], {}