Skip to content

Commit 48a8fc6

Browse files
authored
Fixed an unexpected deadlock issue when user session was removed from the session list.
1 parent b265950 commit 48a8fc6

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/tinystruct/examples/talk.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,17 @@ private final void copy(Object meetingCode, Builder builder) {
160160
final Collection<Entry<String, Queue<Builder>>> set = list.entrySet();
161161
final Iterator<Entry<String, Queue<Builder>>> iterator = set.iterator();
162162
final List<String> meeting_session;
163-
if((meeting_session = this.sessions.get(meetingCode)) != null)
164-
while(iterator.hasNext()) {
165-
Entry<String, Queue<Builder>> e = iterator.next();
166-
if(meeting_session.contains(e.getKey())) {
167-
e.getValue().add(builder);
168-
this.list.notifyAll();
163+
if((meeting_session = this.sessions.get(meetingCode)) != null) {
164+
while(iterator.hasNext()) {
165+
Entry<String, Queue<Builder>> e = iterator.next();
166+
if(meeting_session.contains(e.getKey())) {
167+
e.getValue().add(builder);
168+
this.list.notifyAll();
169+
}
169170
}
170171
}
172+
else
173+
this.list.notifyAll();
171174
}
172175
}
173176

0 commit comments

Comments
 (0)