changed to Ray as parallel process (concurrency bugs still remain)
changed to unbuffered read (as per recommendation in IO::Select documentation)