Right now, the heartbeat checker on an input stream will die on the first heartbeat. Instead, the semantics should be to continually produce exceptions in the case that heartbeats continue not to show up. It should be up to the user of this library to decide how to handle these exceptions.