Sleeps governed by when puma_read() returns; might be replaced by puma_move_nowait();