Implement theoretically working skeleton.
Properly handle -1 and kill off reader.
Throw reasonable exceptions when reader thread crashes.