Plugins should use the executor rather than creating threads.

This commit is contained in:
akwizgran
2011-12-08 16:57:24 +00:00
parent c6b6c20205
commit 9f0b865ba8
7 changed files with 59 additions and 90 deletions

View File

@@ -42,15 +42,11 @@ abstract class SocketPlugin extends AbstractPlugin implements StreamPlugin {
@Override
public synchronized void start() throws IOException {
super.start();
pluginExecutor.execute(createBinder());
}
private Runnable createBinder() {
return new Runnable() {
pluginExecutor.execute(new Runnable() {
public void run() {
bind();
}
};
});
}
private void bind() {
@@ -93,25 +89,11 @@ abstract class SocketPlugin extends AbstractPlugin implements StreamPlugin {
socket = ss;
setLocalSocketAddress(ss.getLocalSocketAddress());
}
startListenerThread();
}
private void startListenerThread() {
new Thread() {
@Override
public void run() {
listen();
}
}.start();
}
private void listen() {
// Accept connections until the socket is closed
while(true) {
ServerSocket ss;
Socket s;
synchronized(this) {
if(!started) return;
ss = socket;
}
try {
s = ss.accept();