Skip to content

Commit

Permalink
Get serialization of events off main processing thread
Browse files Browse the repository at this point in the history
  • Loading branch information
Bruce Robbins committed Nov 18, 2011
1 parent cf685ab commit 49dc481
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions s4-core/src/main/java/io/s4/emitter/CommLayerEmitter.java
Expand Up @@ -115,8 +115,7 @@ public void emit(int partitionId, EventWrapper eventWrapper) {
}

try {
byte[] rawMessage = serDeser.serialize(eventWrapper);
MessageHolder mh = new MessageHolder(partitionId, rawMessage);
MessageHolder mh = new MessageHolder(partitionId, eventWrapper);
queueMessage(mh);
} catch (RuntimeException rte) {
if (monitor != null) {
Expand Down Expand Up @@ -197,7 +196,7 @@ public void run() {
isSent = false;
try {
MessageHolder mh = messageQueue.take();
byte[] rawMessage = mh.getRawMessage();
byte[] rawMessage = serDeser.serialize(mh.getEventWrapper());
if (listener == null) {
isSent = sender.send(rawMessage);
} else {
Expand Down Expand Up @@ -244,19 +243,19 @@ public byte[] serialize(Object input) {

class MessageHolder {
private int partitionId;
private byte[] rawMessage;

MessageHolder(int partitionId, byte[] rawMessage) {
private EventWrapper eventWrapper;
MessageHolder(int partitionId, EventWrapper eventWrapper) {
this.partitionId = partitionId;
this.rawMessage = rawMessage;
this.eventWrapper = eventWrapper;
}

int getPartitionId() {
return partitionId;
}

byte[] getRawMessage() {
return rawMessage;
EventWrapper getEventWrapper() {
return eventWrapper;
}
}
}

0 comments on commit 49dc481

Please sign in to comment.