Fixed a potential synchronicity issue.

So if a thread is waiting and it is interrupted, it may be possible for the printing thread to still be printing. While this error should be completely unrecoverable, it is possible to recover from being interrupted, in which case, we need that printer to know that it should not add anything to the messanger queue, and potential derail any subsequent checks who pull from the queue prematurely. I think killing the printing thread may be the only true solution, though that is not an option
using the current ExecutorService.