From b5a7942b67bf660b1e8d607106f46707d8f1bf2a Mon Sep 17 00:00:00 2001 From: Daniil Date: Sun, 5 Aug 2018 13:15:31 +0700 Subject: [PATCH] Fixed reentrant locking mechanism for PoorMansLock --- .../src/main/java/mc/core/events/lock/PoorMansLock.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/event-loop/src/main/java/mc/core/events/lock/PoorMansLock.java b/event-loop/src/main/java/mc/core/events/lock/PoorMansLock.java index e8d13e5..a694b17 100644 --- a/event-loop/src/main/java/mc/core/events/lock/PoorMansLock.java +++ b/event-loop/src/main/java/mc/core/events/lock/PoorMansLock.java @@ -27,8 +27,10 @@ public class PoorMansLock { } public synchronized void lock() { - if (owner != null && owner != Thread.currentThread()) { - // ToDo: do we need to await for unlock? + if(owner == Thread.currentThread()) + return; + + if (owner != null) { throw new RuntimeException("Unable to lock this resource: already in use"); }