Add SessionReader and SessionWriter worker threads for session #198

Merged
lars.winzer merged 20 commits from feat/session-reader-and-writer-thread into main 2026-03-20 17:39:44 +01:00
2 changed files with 6 additions and 4 deletions
Showing only changes of commit f79f7f0ae2 - Show all commits
@@ -31,8 +31,9 @@ public class SessionReader implements Runnable {
@Override @Override
public void run() { public void run() {
while (!Thread.currentThread().isInterrupted()) { while (!Thread.currentThread().isInterrupted()) {
RawPacket rawPacket = null;
try { try {
RawPacket rawPacket = transport.read(); rawPacket = transport.read();
logger.debug("Recieved: {}", rawPacket); logger.debug("Recieved: {}", rawPacket);
PrimitiveRequest primitiveRequest = ProtocolParser.parse(rawPacket); PrimitiveRequest primitiveRequest = ProtocolParser.parse(rawPacket);
@@ -42,7 +43,7 @@ public class SessionReader implements Runnable {
eventBus.publish(new DisconnectEvent(session.getId())); eventBus.publish(new DisconnectEvent(session.getId()));
break; break;
} catch (TokenizerException | ProtocolParserException e) { } catch (TokenizerException | ProtocolParserException e) {
logger.error("Error occured while parsing request", e); logger.error("Error occured while parsing request. RawPacket: {}", rawPacket, e);
// TODO: Send error response to client // TODO: Send error response to client
} catch (IOException e) { } catch (IOException e) {
@@ -23,12 +23,13 @@ public class SessionWriter implements Runnable {
public void run() { public void run() {
while (!Thread.currentThread().isInterrupted()) { while (!Thread.currentThread().isInterrupted()) {
RawPacket packet = null;
try { try {
PrimitiveResponse response = queue.take(); PrimitiveResponse response = queue.take();
RawPacket packet = new RawPacket(response.requestId(), response.payload()); packet = new RawPacket(response.requestId(), response.payload());
transport.write(packet); transport.write(packet);
} catch (IOException e) { } catch (IOException e) {
logger.error("Unexpected exception while writing to transport", e); logger.error("Unexpected exception while writing to transport. RawPacket: {}", packet, e);
} catch (InterruptedException e) { } catch (InterruptedException e) {
logger.warn("Thread got interrupted", e); logger.warn("Thread got interrupted", e);
break; break;