I think the only variables that may get accessed by multiple threads are closed, inputFinished, and registered. Those are marked volatile. Any other ones I missed?