"Normally" one would send each process a sentinel (None) in the queue. Then each server in turn will read one of the None-sentinels (since the queue is 'multiconcurrent-read-safe') and stop itself. Exiting cleanly.

Then the parent process waits for some time looping over the children (servers) and if they don't exit at some point terminate them.

I guess that that is what used to be intended here as well.

However what it currently implemented seems more like aggressively killing the processes by using ```terminate()``` or worse instead of cleaning up the mainloop does a ```sys.exit(...)```.

This part of the code could use some serious TLC.
 
It's on my todo list but it will take some time before I will get too it.

(If anybody wants to dive into handling exiting cleanly in all cases with multi-processes be my guest :)