Skip to content

Commit 6a3911a

Browse files
Unregister
1 parent f3506da commit 6a3911a

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

server/src/main/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ public synchronized void registerMergeScheduler(ThreadPoolMergeScheduler threadP
7575
}
7676
}
7777

78+
public synchronized void unregisterMergeScheduler(ThreadPoolMergeScheduler threadPoolMergeScheduler) {
79+
if (registeredMergeSchedulers.remove(threadPoolMergeScheduler) == false) {
80+
throw new IllegalStateException("cannot unregister if the scheduler has not been registered");
81+
}
82+
}
83+
7884
public synchronized void updateMergeScheduler(
7985
ThreadPoolMergeScheduler threadPoolMergeScheduler,
8086
Consumer<ThreadPoolMergeScheduler> updater

server/src/main/java/org/elasticsearch/index/engine/ThreadPoolMergeScheduler.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,13 @@ protected void message(String message) {
438438
super.message(message);
439439
}
440440

441+
/** Close this MergeScheduler. */
442+
@Override
443+
public void close() throws IOException {
444+
super.close();
445+
threadPoolMergeExecutor.unregisterMergeScheduler(this);
446+
}
447+
441448
private static double nsToSec(long ns) {
442449
return ns / (double) TimeUnit.SECONDS.toNanos(1);
443450
}

0 commit comments

Comments
 (0)