mercurial/commandserver.py
changeset 33543 3ef3bf704e47
parent 33506 8a1a7935c047
child 34373 76b334b9f45c
equal deleted inserted replaced
33542:b11e8c67fb0f 33543:3ef3bf704e47
     9 
     9 
    10 import errno
    10 import errno
    11 import gc
    11 import gc
    12 import os
    12 import os
    13 import random
    13 import random
    14 import select
       
    15 import signal
    14 import signal
    16 import socket
    15 import socket
    17 import struct
    16 import struct
    18 import traceback
    17 import traceback
    19 
    18 
   486                 # for requests that are queued (connect()-ed, but haven't been
   485                 # for requests that are queued (connect()-ed, but haven't been
   487                 # accept()-ed), handle them before exit. otherwise, clients
   486                 # accept()-ed), handle them before exit. otherwise, clients
   488                 # waiting for recv() will receive ECONNRESET.
   487                 # waiting for recv() will receive ECONNRESET.
   489                 self._unlinksocket()
   488                 self._unlinksocket()
   490                 exiting = True
   489                 exiting = True
       
   490             ready = selector.select(timeout=h.pollinterval)
       
   491             if not ready:
       
   492                 # only exit if we completed all queued requests
       
   493                 if exiting:
       
   494                     break
       
   495                 continue
   491             try:
   496             try:
   492                 ready = selector.select(timeout=h.pollinterval)
       
   493                 if not ready:
       
   494                     # only exit if we completed all queued requests
       
   495                     if exiting:
       
   496                         break
       
   497                     continue
       
   498                 conn, _addr = self._sock.accept()
   497                 conn, _addr = self._sock.accept()
   499             except (select.error, socket.error) as inst:
   498             except socket.error as inst:
   500                 if inst.args[0] == errno.EINTR:
   499                 if inst.args[0] == errno.EINTR:
   501                     continue
   500                     continue
   502                 raise
   501                 raise
   503 
   502 
   504             pid = os.fork()
   503             pid = os.fork()