You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cm...@apache.org on 2014/10/06 23:45:10 UTC
git commit: HADOOP-10404. Commit correct version of patch (cmccabe)
(cherry picked from commit 687d83c9e10a4432c8d54c2cd406c7ccb4392187)
Repository: hadoop
Updated Branches:
refs/heads/branch-2 c97134d05 -> b5158c8d2
HADOOP-10404. Commit correct version of patch (cmccabe)
(cherry picked from commit 687d83c9e10a4432c8d54c2cd406c7ccb4392187)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b5158c8d
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b5158c8d
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b5158c8d
Branch: refs/heads/branch-2
Commit: b5158c8d24810899972fa625f3e42cbea3263155
Parents: c97134d
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Mon Oct 6 14:44:13 2014 -0700
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Mon Oct 6 14:45:04 2014 -0700
----------------------------------------------------------------------
.../hadoop/net/unix/DomainSocketWatcher.java | 23 ++++++++++----------
1 file changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/b5158c8d/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/unix/DomainSocketWatcher.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/unix/DomainSocketWatcher.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/unix/DomainSocketWatcher.java
index 6215e58..95ef30d 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/unix/DomainSocketWatcher.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/unix/DomainSocketWatcher.java
@@ -101,7 +101,7 @@ public final class DomainSocketWatcher implements Closeable {
*/
private class NotificationHandler implements Handler {
public boolean handle(DomainSocket sock) {
- lock.lock();
+ assert(lock.isHeldByCurrentThread());
try {
if (LOG.isTraceEnabled()) {
LOG.trace(this + ": NotificationHandler: doing a read on " +
@@ -125,8 +125,6 @@ public final class DomainSocketWatcher implements Closeable {
}
closed = true;
return true;
- } finally {
- lock.unlock();
}
}
}
@@ -349,15 +347,13 @@ public final class DomainSocketWatcher implements Closeable {
* Wake up the DomainSocketWatcher thread.
*/
private void kick() {
- lock.lock();
+ assert(lock.isHeldByCurrentThread());
try {
notificationSockets[0].getOutputStream().write(0);
} catch (IOException e) {
if (!closed) {
LOG.error(this + ": error writing to notificationSockets[0]", e);
}
- } finally {
- lock.unlock();
}
}
@@ -467,12 +463,17 @@ public final class DomainSocketWatcher implements Closeable {
} catch (IOException e) {
LOG.error(toString() + " terminating on IOException", e);
} finally {
- kick(); // allow the handler for notificationSockets[0] to read a byte
- for (Entry entry : entries.values()) {
- sendCallback("close", entries, fdSet, entry.getDomainSocket().fd);
+ lock.lock();
+ try {
+ kick(); // allow the handler for notificationSockets[0] to read a byte
+ for (Entry entry : entries.values()) {
+ sendCallback("close", entries, fdSet, entry.getDomainSocket().fd);
+ }
+ entries.clear();
+ fdSet.close();
+ } finally {
+ lock.unlock();
}
- entries.clear();
- fdSet.close();
}
}
});