You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/08/03 08:10:57 UTC

svn commit: r562350 - /mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java

Author: trustin
Date: Thu Aug  2 23:10:56 2007
New Revision: 562350

URL: http://svn.apache.org/viewvc?view=rev&rev=562350
Log:
Removed unnecessary synchronization in SocketConnector

Modified:
    mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java?view=diff&rev=562350&r1=562349&r2=562350
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java Thu Aug  2 23:10:56 2007
@@ -190,18 +190,16 @@
         }
 
         ConnectionRequest request = new ConnectionRequest(ch, handler, config);
-        synchronized (lock) {
+        try {
+            startupWorker();
+        } catch (IOException e) {
             try {
-                startupWorker();
-            } catch (IOException e) {
-                try {
-                    ch.close();
-                } catch (IOException e2) {
-                    ExceptionMonitor.getInstance().exceptionCaught(e2);
-                }
-
-                return DefaultConnectFuture.newFailedFuture(e);
+                ch.close();
+            } catch (IOException e2) {
+                ExceptionMonitor.getInstance().exceptionCaught(e2);
             }
+
+            return DefaultConnectFuture.newFailedFuture(e);
         }
 
         synchronized (connectQueue) {
@@ -229,11 +227,13 @@
         this.defaultConfig = defaultConfig;
     }
 
-    private synchronized void startupWorker() throws IOException {
-        if (worker == null) {
-            selector = Selector.open();
-            worker = new Worker();
-            executor.execute(new NamePreservingRunnable(worker));
+    private void startupWorker() throws IOException {
+        synchronized (lock) {
+            if (worker == null) {
+                selector = Selector.open();
+                worker = new Worker();
+                executor.execute(new NamePreservingRunnable(worker));
+            }
         }
     }