From 48a8fc68af7df815f49db1ec25420e6e996e9b78 Mon Sep 17 00:00:00 2001 From: "James M.Z" Date: Tue, 17 Jan 2017 16:34:08 +0800 Subject: [PATCH] Fixed an unexpected deadlock issue when user session was removed from the session list. --- src/tinystruct/examples/talk.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/tinystruct/examples/talk.java b/src/tinystruct/examples/talk.java index 94dd4bd..61b607e 100644 --- a/src/tinystruct/examples/talk.java +++ b/src/tinystruct/examples/talk.java @@ -160,14 +160,17 @@ private final void copy(Object meetingCode, Builder builder) { final Collection>> set = list.entrySet(); final Iterator>> iterator = set.iterator(); final List meeting_session; - if((meeting_session = this.sessions.get(meetingCode)) != null) - while(iterator.hasNext()) { - Entry> e = iterator.next(); - if(meeting_session.contains(e.getKey())) { - e.getValue().add(builder); - this.list.notifyAll(); + if((meeting_session = this.sessions.get(meetingCode)) != null) { + while(iterator.hasNext()) { + Entry> e = iterator.next(); + if(meeting_session.contains(e.getKey())) { + e.getValue().add(builder); + this.list.notifyAll(); + } } } + else + this.list.notifyAll(); } }