mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
IGN:...
This commit is contained in:
parent
1a45fc3d58
commit
897c75dbf8
@ -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
|
||||||
@ -508,13 +513,13 @@ class Server(Thread):
|
|||||||
self.port = tempfile.mktemp(prefix='calibre_server')+'_%d_'%self.PID if not iswindows else self.START_PORT
|
self.port = tempfile.mktemp(prefix='calibre_server')+'_%d_'%self.PID if not iswindows else self.START_PORT
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
address = ('localhost', self.port) if iswindows else self.port
|
address = ('localhost', self.port) if iswindows else self.port
|
||||||
self.server_socket.bind(address)
|
self.server_socket.bind(address)
|
||||||
break
|
break
|
||||||
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(), [], {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user