Mercurial Hosting > luan
comparison src/org/eclipse/jetty/io/nio/SelectorManager.java @ 970:d82eb99e8df6
remove ConnectorSelectorManager
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Fri, 14 Oct 2016 05:24:18 -0600 |
| parents | 0650077fcd6c |
| children | f997df37cec1 |
comparison
equal
deleted
inserted
replaced
| 969:0650077fcd6c | 970:d82eb99e8df6 |
|---|---|
| 41 import org.eclipse.jetty.io.EndPoint; | 41 import org.eclipse.jetty.io.EndPoint; |
| 42 import org.eclipse.jetty.util.TypeUtil; | 42 import org.eclipse.jetty.util.TypeUtil; |
| 43 import org.eclipse.jetty.util.component.AbstractLifeCycle; | 43 import org.eclipse.jetty.util.component.AbstractLifeCycle; |
| 44 import org.eclipse.jetty.util.component.AggregateLifeCycle; | 44 import org.eclipse.jetty.util.component.AggregateLifeCycle; |
| 45 import org.eclipse.jetty.util.component.Dumpable; | 45 import org.eclipse.jetty.util.component.Dumpable; |
| 46 import org.eclipse.jetty.server.nio.SelectChannelConnector; | |
| 46 import org.slf4j.Logger; | 47 import org.slf4j.Logger; |
| 47 import org.slf4j.LoggerFactory; | 48 import org.slf4j.LoggerFactory; |
| 48 | 49 |
| 49 | 50 |
| 50 /* ------------------------------------------------------------ */ | 51 /* ------------------------------------------------------------ */ |
| 51 /** | 52 /** |
| 52 * The Selector Manager manages and number of SelectSets to allow | 53 * The Selector Manager manages and number of SelectSets to allow |
| 53 * NIO scheduling to scale to large numbers of connections. | 54 * NIO scheduling to scale to large numbers of connections. |
| 54 * <p> | 55 * <p> |
| 55 */ | 56 */ |
| 56 public abstract class SelectorManager extends AbstractLifeCycle implements Dumpable | 57 public final class SelectorManager extends AbstractLifeCycle implements Dumpable |
| 57 { | 58 { |
| 58 public static final Logger LOG = LoggerFactory.getLogger("org.eclipse.jetty.io.nio"); | 59 public static final Logger LOG = LoggerFactory.getLogger("org.eclipse.jetty.io.nio"); |
| 59 | 60 |
| 60 private final int _maxIdleTime; | 61 private final SelectChannelConnector scc; |
| 61 private volatile long _now = System.currentTimeMillis(); | 62 private volatile long _now = System.currentTimeMillis(); |
| 62 private SaneSelector _selector; | 63 private SaneSelector _selector; |
| 63 | 64 |
| 64 /* ------------------------------------------------------------ */ | 65 /* ------------------------------------------------------------ */ |
| 65 /** | 66 /** |
| 66 * @param maxIdleTime The maximum period in milli seconds that a connection may be idle before it is closed. | 67 * @param maxIdleTime The maximum period in milli seconds that a connection may be idle before it is closed. |
| 67 * @see #setLowResourcesMaxIdleTime(long) | 68 * @see #setLowResourcesMaxIdleTime(long) |
| 68 */ | 69 */ |
| 69 public SelectorManager(int maxIdleTime) | 70 public SelectorManager(SelectChannelConnector scc) |
| 70 { | 71 { |
| 71 _maxIdleTime = maxIdleTime; | 72 this.scc = scc; |
| 72 } | 73 } |
| 73 | 74 |
| 74 /* ------------------------------------------------------------ */ | 75 /* ------------------------------------------------------------ */ |
| 75 /** Register a channel | 76 /** Register a channel |
| 76 * @param channel | 77 * @param channel |
| 84 set.addChange(channel); | 85 set.addChange(channel); |
| 85 } | 86 } |
| 86 */ | 87 */ |
| 87 try { | 88 try { |
| 88 SelectionKey key = _selector.register(channel,0,null); | 89 SelectionKey key = _selector.register(channel,0,null); |
| 89 SelectChannelEndPoint endpoint = new SelectChannelEndPoint(channel,this,key, _maxIdleTime); | 90 SelectChannelEndPoint endpoint = new SelectChannelEndPoint(channel,this,key, scc.getMaxIdleTime()); |
| 90 key.attach(endpoint); | 91 key.attach(endpoint); |
| 91 _selector.update(); | 92 _selector.update(); |
| 92 //System.out.println("qqqqqqqqqqqqqqqqqqqqqqqqqqqqq b"); | 93 //System.out.println("qqqqqqqqqqqqqqqqqqqqqqqqqqqqq b"); |
| 93 endpoint.schedule(); | 94 endpoint.schedule(); |
| 94 } catch(IOException e) { | 95 } catch(IOException e) { |
| 100 } | 101 } |
| 101 } | 102 } |
| 102 } | 103 } |
| 103 | 104 |
| 104 | 105 |
| 105 public abstract void execute(Runnable task); | 106 public void execute(Runnable task) { |
| 107 scc.server.threadPool.execute(task); | |
| 108 } | |
| 106 | 109 |
| 107 | 110 |
| 108 @Override | 111 @Override |
| 109 protected void doStart() throws Exception | 112 protected void doStart() throws Exception |
| 110 { | 113 { |
| 182 } | 185 } |
| 183 } | 186 } |
| 184 super.doStop(); | 187 super.doStop(); |
| 185 } | 188 } |
| 186 | 189 |
| 187 public abstract AsyncConnection newConnection(SocketChannel channel, SelectChannelEndPoint endpoint); | 190 public AsyncConnection newConnection(SocketChannel channel, SelectChannelEndPoint endpoint) { |
| 191 return scc.newConnection(channel,endpoint); | |
| 192 } | |
| 188 | 193 |
| 189 @Override | 194 @Override |
| 190 public String dump() | 195 public String dump() |
| 191 { | 196 { |
| 192 return AggregateLifeCycle.dump(this); | 197 return AggregateLifeCycle.dump(this); |
