Fix race-condition which could lead to a NPE or Exception while register a Channel with a Worker. See #469

This commit is contained in:
norman 2012-07-23 09:25:26 +02:00
parent c059d13108
commit 54ad935ec5

View File

@ -143,14 +143,17 @@ abstract class AbstractNioWorker implements Worker {
assert offered;
if (wakenUp.compareAndSet(false, true)) {
// wake up the selector to speed things
selector = this.selector;
synchronized (startStopLock) {
// wake up the selector to speed things
selector = this.selector;
// Check if the selector is not null to prevent NPE if selector was
// set to null from another thread. See #469
if (selector != null) {
selector.wakeup();
// Check if the selector is not null to prevent NPE if selector was
// set to null from another thread. See #469
if (selector != null) {
selector.wakeup();
}
}
}
}