extract duplicate code into method (#8720)

Motivation:

Clean up code to increase readability.

Modification:

Extract duplicate code blocks into method.

Result:

Less code duplication
This commit is contained in:
kezhenxu94 2019-01-16 17:56:07 +08:00 committed by Norman Maurer
parent c424599593
commit 53d711bdc7
1 changed files with 22 additions and 26 deletions

View File

@ -595,19 +595,8 @@ public abstract class SingleThreadEventExecutor extends AbstractScheduledEventEx
gracefulShutdownQuietPeriod = unit.toNanos(quietPeriod);
gracefulShutdownTimeout = unit.toNanos(timeout);
if (oldState == ST_NOT_STARTED) {
try {
doStartThread();
} catch (Throwable cause) {
STATE_UPDATER.set(this, ST_TERMINATED);
terminationFuture.tryFailure(cause);
if (!(cause instanceof Exception)) {
// Also rethrow as it may be an OOME for example
PlatformDependent.throwException(cause);
}
return terminationFuture;
}
if (ensureThreadStarted(oldState)) {
return terminationFuture;
}
if (wakeup) {
@ -658,19 +647,8 @@ public abstract class SingleThreadEventExecutor extends AbstractScheduledEventEx
}
}
if (oldState == ST_NOT_STARTED) {
try {
doStartThread();
} catch (Throwable cause) {
STATE_UPDATER.set(this, ST_TERMINATED);
terminationFuture.tryFailure(cause);
if (!(cause instanceof Exception)) {
// Also rethrow as it may be an OOME for example
PlatformDependent.throwException(cause);
}
return;
}
if (ensureThreadStarted(oldState)) {
return;
}
if (wakeup) {
@ -893,6 +871,24 @@ public abstract class SingleThreadEventExecutor extends AbstractScheduledEventEx
}
}
private boolean ensureThreadStarted(int oldState) {
if (oldState == ST_NOT_STARTED) {
try {
doStartThread();
} catch (Throwable cause) {
STATE_UPDATER.set(this, ST_TERMINATED);
terminationFuture.tryFailure(cause);
if (!(cause instanceof Exception)) {
// Also rethrow as it may be an OOME for example
PlatformDependent.throwException(cause);
}
return true;
}
}
return false;
}
private void doStartThread() {
assert thread == null;
executor.execute(new Runnable() {