Fixed crash when worker has just been registered and didn't get executed

yet.
This commit is contained in:
Dominik Picheta 2013-07-28 18:28:50 +01:00
commit ae64089e53

View file

@ -757,7 +757,7 @@ proc poll*(d: PDispatcher, timeout: int = 500): bool =
processWorkers(d) processWorkers(d)
var readWorkers = populateRead(d) var readWorkers = populateRead(d)
var writeWorkers = populateWrite(d) var writeWorkers = populateWrite(d)
echo(readWorkers.len, " ", d.requests[reqNil].len, d.requests[reqReadLine].len) #echo(readWorkers.len, " ", d.requests[reqNil].len, d.requests[reqReadLine].len)
if select(readWorkers, writeWorkers, timeout) != 0: if select(readWorkers, writeWorkers, timeout) != 0:
var newRequests: array[TRequestKind, seq[PWorker]] = newRequests() var newRequests: array[TRequestKind, seq[PWorker]] = newRequests()
for req in TRequestKind: for req in TRequestKind:
@ -827,7 +827,8 @@ proc poll*(d: PDispatcher, timeout: int = 500): bool =
of reqReg: of reqReg:
assert false, "reqReg should have been processed already" assert false, "reqReg should have been processed already"
of reqNil: of reqNil:
assert false, "reqNil should have been processed already" # Nothing to do. Most likely that a new worker has just been
# registered.
newRequests[addTo].add(worker) newRequests[addTo].add(worker)
d.requests = newRequests d.requests = newRequests