I think that in certain cases with selectors involved the ch.close() will wait until the next select operation on the channel, but I'm not sure if when it's in a bad state any more selects will be allowed to happen