瀏覽代碼

HADOOP-14214. DomainSocketWatcher::add()/delete() should not self interrupt while looping await(). Contributed by Mingliang Liu

(cherry picked from commit d35e79abc2fee7153a6168e6088f100de59d8c81)
(cherry picked from commit 47d3c29e300e0d43ce4a26807432c9c0361e172e)
Mingliang Liu 8 年之前
父節點
當前提交
e53c489941

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -188,6 +188,9 @@ Release 2.7.4 - UNRELEASED
     HADOOP-10829. Iteration on CredentialProviderFactory.serviceLoader is
     thread-unsafe. (enoy Antony via jnp)
 
+    HADOOP-14214. DomainSocketWatcher::add()/delete() should not self
+    interrupt while looping await(). (Mingliang Liu)
+
 Release 2.7.3 - 2016-08-25
 
   INCOMPATIBLE CHANGES

+ 2 - 10
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/unix/DomainSocketWatcher.java

@@ -321,11 +321,7 @@ public final class DomainSocketWatcher implements Closeable {
       toAdd.add(entry);
       kick();
       while (true) {
-        try {
-          processedCond.await();
-        } catch (InterruptedException e) {
-          Thread.currentThread().interrupt();
-        }
+        processedCond.awaitUninterruptibly();
         if (!toAdd.contains(entry)) {
           break;
         }
@@ -347,11 +343,7 @@ public final class DomainSocketWatcher implements Closeable {
       toRemove.put(sock.fd, sock);
       kick();
       while (true) {
-        try {
-          processedCond.await();
-        } catch (InterruptedException e) {
-          Thread.currentThread().interrupt();
-        }
+        processedCond.awaitUninterruptibly();
         if (!toRemove.containsKey(sock.fd)) {
           break;
         }