Thanks Dom, good to know these sort of implementation details.

> withTimeout doesn't cancel the dataEvt future

Similarly, does it mean that an or composite future will suffer from the same 
issue?

> why are you doing this?

No particular reason, just testing to see how resilient the whole thing is. The 
processClient type routines may be well doing something else (short maintenance 
task) till new data becomes available.

> closing a socket that is awaiting on a read in another async proc is safe

OK, what about deleting the client object from the global array? I would have 
thought that in this particular case other instances of processClient may 
carry-on looping through clients list via
    
    
    for c in clients:
          await c.send(line)
    
    
    Run

after one client disconnected and thus it may actually access invalid data. 
Would clients.delete(i) requires some sort of locking?

Reply via email to