Fix: Avoid Race condition in create method of SessionManager
This commit is contained in:
+10
-9
@@ -32,18 +32,19 @@ public class SessionManager {
|
|||||||
*/
|
*/
|
||||||
public Session create(TransportLayer transport) {
|
public Session create(TransportLayer transport) {
|
||||||
Session session = new Session(transport, eventBus);
|
Session session = new Session(transport, eventBus);
|
||||||
|
|
||||||
SessionReader reader = new SessionReader(session, eventBus);
|
SessionReader reader = new SessionReader(session, eventBus);
|
||||||
Thread readerThread = new Thread(reader, "session-" + session.getId().value() + "-reader");
|
|
||||||
readerThread.start();
|
|
||||||
|
|
||||||
SessionWriter writer = new SessionWriter(session);
|
SessionWriter writer = new SessionWriter(session);
|
||||||
Thread writerThread = new Thread(writer, "session-" + session.getId().value() + "-writer");
|
|
||||||
writerThread.start();
|
|
||||||
|
|
||||||
SessionHandle handle = new SessionHandle(session, readerThread, writerThread);
|
Thread readerThread = Thread.ofVirtual()
|
||||||
sessions.put(session.getId(), handle);
|
.name("session-" + session.getId().value() + "-reader")
|
||||||
logger.debug("Created new session {}", session.getId().value());
|
.unstarted(reader);
|
||||||
|
Thread writerThread = Thread.ofVirtual()
|
||||||
|
.name("session-" + session.getId().value() + "-writer")
|
||||||
|
.unstarted(writer);
|
||||||
|
|
||||||
|
sessions.put(session.getId(), new SessionHandle(session, readerThread, writerThread));
|
||||||
|
readerThread.start();
|
||||||
|
writerThread.start();
|
||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user