Author: elecharny
Date: Sat Apr  9 15:01:46 2011
New Revision: 1090604

URL: http://svn.apache.org/viewvc?rev=1090604&view=rev
Log:
Rollbacked some changes made on the Datagram part : it was generating a 
deadlock in tests

Modified:
    
mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java

Modified: 
mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
URL: 
http://svn.apache.org/viewvc/mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java?rev=1090604&r1=1090603&r2=1090604&view=diff
==============================================================================
--- 
mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
 (original)
+++ 
mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
 Sat Apr  9 15:01:46 2011
@@ -35,7 +35,6 @@ import java.util.Queue;
 import java.util.Set;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.Executor;
-import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.mina.core.RuntimeIoException;
 import org.apache.mina.core.buffer.IoBuffer;
@@ -89,7 +88,7 @@ public abstract class AbstractPollingCon
     private volatile boolean selectable;
 
     /** The thread responsible of accepting incoming requests */
-    private AtomicReference<Acceptor> acceptorRef = new 
AtomicReference<Acceptor>();
+    private Acceptor acceptor;
 
     private long lastIdleCheckTime;
 
@@ -366,12 +365,9 @@ public abstract class AbstractPollingCon
             flushingSessions.clear();
         }
 
-        Acceptor acceptor = acceptorRef.get();
-
-        if (acceptor == null) {
-            acceptor = new Acceptor();
-
-            if (acceptorRef.compareAndSet(null, acceptor)) {
+        synchronized (lock) {
+            if (acceptor == null) {
+                acceptor = new Acceptor();
                 executeWorker(acceptor);
             }
         }
@@ -418,7 +414,7 @@ public abstract class AbstractPollingCon
                     if (nHandles == 0) {
                         synchronized (lock) {
                             if (registerQueue.isEmpty() && 
cancelQueue.isEmpty()) {
-                                acceptorRef.set(null);
+                                acceptor = null;
                                 break;
                             }
                         }


Reply via email to