You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by md...@apache.org on 2020/09/08 15:13:34 UTC
[lucene-solr] branch master updated: LUCENE-9504 Remove extra lock
in DocumentsWriterDeleteQueue (#1826)
This is an automated email from the ASF dual-hosted git repository.
mdrob pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/master by this push:
new 4c5c8c4 LUCENE-9504 Remove extra lock in DocumentsWriterDeleteQueue (#1826)
4c5c8c4 is described below
commit 4c5c8c4ead74c92b6ab0ec55bca709d36ad152d9
Author: Mike Drob <md...@apache.org>
AuthorDate: Tue Sep 8 10:13:18 2020 -0500
LUCENE-9504 Remove extra lock in DocumentsWriterDeleteQueue (#1826)
---
.../lucene/index/DocumentsWriterDeleteQueue.java | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterDeleteQueue.java b/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterDeleteQueue.java
index cb3db7a..ab5d657 100644
--- a/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterDeleteQueue.java
+++ b/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterDeleteQueue.java
@@ -509,27 +509,18 @@ final class DocumentsWriterDeleteQueue implements Accountable, Closeable {
}
}
- private boolean forceApplyGlobalSlice() {
- globalBufferLock.lock();
- final Node<?> currentTail = tail;
+ public int getBufferedUpdatesTermsSize() {
+ final ReentrantLock lock = globalBufferLock; // Trusted final
+ lock.lock();
try {
+ final Node<?> currentTail = tail;
if (globalSlice.sliceTail != currentTail) {
globalSlice.sliceTail = currentTail;
globalSlice.apply(globalBufferedUpdates, BufferedUpdates.MAX_INT);
}
- return globalBufferedUpdates.any();
- } finally {
- globalBufferLock.unlock();
- }
- }
-
- public int getBufferedUpdatesTermsSize() {
- globalBufferLock.lock();
- try {
- forceApplyGlobalSlice();
return globalBufferedUpdates.deleteTerms.size();
} finally {
- globalBufferLock.unlock();
+ lock.unlock();
}
}