summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-04-09 21:59:04 +0200
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-04-09 21:59:04 +0200
commitafb415dcaf614c177176a00220f3b0418daada1f (patch)
tree84524979c25714aaf1b8587ecdd07cd5df65a618
parentb0bbef369821c6ea45974a5a25a13c99a33d52e0 (diff)
Use buffered readers on server side.
(Not much (any?) effect because the protobuf implementation already does some buffering.)
-rw-r--r--src/main/java/com/orbekk/protobuf/ConnectionHandler.java26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/main/java/com/orbekk/protobuf/ConnectionHandler.java b/src/main/java/com/orbekk/protobuf/ConnectionHandler.java
index 1c93a05..d9bc6da 100644
--- a/src/main/java/com/orbekk/protobuf/ConnectionHandler.java
+++ b/src/main/java/com/orbekk/protobuf/ConnectionHandler.java
@@ -1,5 +1,7 @@
package com.orbekk.protobuf;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.concurrent.ArrayBlockingQueue;
@@ -14,10 +16,12 @@ public class ConnectionHandler {
private class IncomingHandler implements Runnable {
@Override public void run() {
dispatcher.start();
- while (!connection.isClosed()) {
- try {
+ try {
+ BufferedInputStream input = new BufferedInputStream(
+ connection.getInputStream());
+ while (!connection.isClosed()) {
Data.Request r = Data.Request.parseDelimitedFrom(
- connection.getInputStream());
+ input);
if (r == null) {
tryCloseConnection();
} else {
@@ -28,9 +32,9 @@ public class ConnectionHandler {
return;
}
}
- } catch (IOException e) {
- tryCloseConnection();
}
+ } catch (IOException e) {
+ tryCloseConnection();
}
dispatcher.interrupt();
}
@@ -38,17 +42,21 @@ public class ConnectionHandler {
private class OutgoingHandler implements Runnable {
@Override public void run() {
- while (!connection.isClosed()) {
- try {
+ try {
+ BufferedOutputStream output = new BufferedOutputStream(
+ connection.getOutputStream());
+ while (!connection.isClosed()) {
Data.Response response = dispatcherOutput.take();
try {
response.writeDelimitedTo(connection.getOutputStream());
} catch (IOException e) {
tryCloseConnection();
}
- } catch (InterruptedException e) {
- tryCloseConnection();
}
+ } catch (InterruptedException e) {
+ tryCloseConnection();
+ } catch (IOException e) {
+ tryCloseConnection();
}
dispatcher.interrupt();
}