Restructuring of multiprocessing loop

The multiprocessing loop is restructured so that time.sleep is no longer
necessary as channel.get() now blocks execution for a short time when
listening for messages. There are no real functional changes that one
may notice; it is only coded more efficiently this way