Part 2. Committing code. Since perl IO::Select only works on Windows with Sockets and not pipes to process streams, tried to use perl alarm() to emulate the can_read with timeout that IO::Select provides. Unfortunately, alarm() does not work out on windows when a system call blocks. At that point the alarm doesn't happen.