Update of /cvsroot/freenet/freenet/src/freenet/transport
In directory sc8-pr-cvs1:/tmp/cvs-serv14994/src/freenet/transport
Modified Files:
AbstractSelectorLoop.java
Log Message:
reworked closing
Index: AbstractSelectorLoop.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/AbstractSelectorLoop.java,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- AbstractSelectorLoop.java 23 Aug 2003 15:50:56 -0000 1.70
+++ AbstractSelectorLoop.java 29 Aug 2003 16:38:51 -0000 1.71
@@ -226,6 +226,9 @@
}
protected abstract int myKeyOps();
+ public SelectionKey keyFor(SelectableChannel ch) {
+ return ch.keyFor(sel);
+ }
/**
* register/unregister waiters in the queues
@@ -403,25 +406,30 @@
{
synchronized(closeQueue) {
- LinkedList skippedQueue = new LinkedList();
+
synchronized(preCloseQueueObject) {
//boolean wasEmpty = closeQueue.isEmpty();
//boolean itemAdded = false;
while(!preCloseQueue.isEmpty()) {
ClosePair current =
(ClosePair)preCloseQueue.removeFirst();
- if (current.sc != null &&
current.sc.keyFor(sel) != null) {
- current.sc.keyFor(sel).cancel();
- closeQueue.addLast(current);
- } else
- skippedQueue.add(current);
+ if (current.sc != null)
+ if
(tcpConnection.getRSL().keyFor(current.sc)!=null) {
+
tcpConnection.getRSL().keyFor(current.sc).cancel();
+ closeQueue.addLast(current);
+ } else
+ if
(tcpConnection.getWSL().keyFor(current.sc)!=null) {
+
tcpConnection.getWSL().keyFor(current.sc).cancel();
+ closeQueue.addLast(current);
+ } else
+ closeQueue.addLast(current);
//key is not registered anywhere?
+ }
// itemAdded = true;
- }
+ }
/*if(wasEmpty && itemAdded)
closeQueue.notify();*/
- if (! skippedQueue.isEmpty())
- preCloseQueue=skippedQueue;
- }
+
+
}
}
_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs