Mercurial Hosting > luan
comparison src/org/eclipse/jetty/server/Connector.java @ 1011:4e7208df7741
remove PooledBuffers
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sun, 23 Oct 2016 23:59:08 -0600 |
| parents | b664624a4423 |
| children | 8c13b9224cff |
comparison
equal
deleted
inserted
replaced
| 1010:2712133d5bce | 1011:4e7208df7741 |
|---|---|
| 26 import java.util.concurrent.ThreadPoolExecutor; | 26 import java.util.concurrent.ThreadPoolExecutor; |
| 27 import java.util.concurrent.atomic.AtomicLong; | 27 import java.util.concurrent.atomic.AtomicLong; |
| 28 | 28 |
| 29 import javax.servlet.ServletRequest; | 29 import javax.servlet.ServletRequest; |
| 30 | 30 |
| 31 import org.eclipse.jetty.io.Buffer; | |
| 31 import org.eclipse.jetty.io.Buffers; | 32 import org.eclipse.jetty.io.Buffers; |
| 32 import org.eclipse.jetty.io.PooledBuffers; | |
| 33 import org.eclipse.jetty.io.EndPoint; | 33 import org.eclipse.jetty.io.EndPoint; |
| 34 import org.eclipse.jetty.io.EofException; | 34 import org.eclipse.jetty.io.EofException; |
| 35 import org.eclipse.jetty.io.nio.DirectNIOBuffer; | |
| 36 import org.eclipse.jetty.io.nio.IndirectNIOBuffer; | |
| 35 import org.eclipse.jetty.util.component.AggregateLifeCycle; | 37 import org.eclipse.jetty.util.component.AggregateLifeCycle; |
| 36 import org.eclipse.jetty.util.component.Dumpable; | 38 import org.eclipse.jetty.util.component.Dumpable; |
| 37 import org.slf4j.Logger; | 39 import org.slf4j.Logger; |
| 38 import org.slf4j.LoggerFactory; | 40 import org.slf4j.LoggerFactory; |
| 39 | 41 |
| 130 ThreadPoolExecutor _threadPool = server.threadPool; | 132 ThreadPoolExecutor _threadPool = server.threadPool; |
| 131 _threadPool.execute(this); | 133 _threadPool.execute(this); |
| 132 if (server.isLowOnThreads()) | 134 if (server.isLowOnThreads()) |
| 133 LOG.warn("insufficient threads configured for {}",this); | 135 LOG.warn("insufficient threads configured for {}",this); |
| 134 | 136 |
| 135 startBuffers(); | |
| 136 | |
| 137 LOG.info("Started {}",this); | 137 LOG.info("Started {}",this); |
| 138 } | 138 } |
| 139 | 139 |
| 140 @Override | 140 @Override |
| 141 protected synchronized void doStop() throws Exception | 141 protected synchronized void doStop() throws Exception |
| 148 } | 148 } |
| 149 catch (IOException e) | 149 catch (IOException e) |
| 150 { | 150 { |
| 151 LOG.warn("",e); | 151 LOG.warn("",e); |
| 152 } | 152 } |
| 153 | |
| 154 stopBuffers(); | |
| 155 | 153 |
| 156 super.doStop(); | 154 super.doStop(); |
| 157 } | 155 } |
| 158 | 156 |
| 159 | 157 |
| 234 | 232 |
| 235 | 233 |
| 236 | 234 |
| 237 // from HttpBuffersImpl | 235 // from HttpBuffersImpl |
| 238 | 236 |
| 237 protected int _requestHeaderSize = 6*1024; | |
| 239 protected int _requestBufferSize = 16*1024; | 238 protected int _requestBufferSize = 16*1024; |
| 240 protected int _requestHeaderSize = 6*1024; | 239 private final int _responseHeaderSize = 6*1024; |
| 241 private final int _responseBufferSize = 32*1024; | 240 private final int _responseBufferSize = 32*1024; |
| 242 private final int _responseHeaderSize = 6*1024; | |
| 243 private final int _maxBuffers = 1024; | |
| 244 | 241 |
| 245 protected Buffers.Type _requestBufferType = Buffers.Type.DIRECT; | |
| 246 protected Buffers.Type _responseBufferType = Buffers.Type.DIRECT; | |
| 247 | |
| 248 private Buffers _requestBuffers; | |
| 249 private Buffers _responseBuffers; | |
| 250 | |
| 251 private void startBuffers() | |
| 252 throws Exception | |
| 253 { | |
| 254 _requestBuffers = new PooledBuffers(Buffers.Type.INDIRECT,_requestHeaderSize,_requestBufferType,_requestBufferSize,_maxBuffers); | |
| 255 _responseBuffers = new PooledBuffers(Buffers.Type.INDIRECT,_responseHeaderSize,_responseBufferType,_responseBufferSize,_maxBuffers); | |
| 256 super.doStart(); | |
| 257 } | |
| 258 | |
| 259 private void stopBuffers() | |
| 260 throws Exception | |
| 261 { | |
| 262 _requestBuffers = null; | |
| 263 _responseBuffers = null; | |
| 264 } | |
| 265 | |
| 266 public final Buffers getRequestBuffers() | 242 public final Buffers getRequestBuffers() |
| 267 { | 243 { |
| 268 return _requestBuffers; | 244 return new MyBuffers(_requestHeaderSize,_requestBufferSize); |
| 269 } | 245 } |
| 270 | 246 |
| 271 public final Buffers getResponseBuffers() | 247 public final Buffers getResponseBuffers() |
| 272 { | 248 { |
| 273 return _responseBuffers; | 249 return new MyBuffers(_responseHeaderSize,_responseBufferSize); |
| 274 } | 250 } |
| 275 | 251 |
| 252 | |
| 253 // my own buffers | |
| 254 | |
| 255 protected Buffer newBuffer(int size) { | |
| 256 return new DirectNIOBuffer(size); | |
| 257 } | |
| 258 | |
| 259 private class MyBuffers implements Buffers { | |
| 260 private final int headerSize; | |
| 261 private final int bufferSize; | |
| 262 | |
| 263 MyBuffers(int headerSize,int bufferSize) { | |
| 264 this.headerSize = headerSize; | |
| 265 this.bufferSize = bufferSize; | |
| 266 } | |
| 267 | |
| 268 public Buffer getHeader() { | |
| 269 return new IndirectNIOBuffer(headerSize); | |
| 270 } | |
| 271 | |
| 272 public Buffer getBuffer() { | |
| 273 return newBuffer(bufferSize); | |
| 274 } | |
| 275 | |
| 276 public Buffer getBuffer(int size) { | |
| 277 return newBuffer(size); | |
| 278 } | |
| 279 | |
| 280 public void returnBuffer(Buffer buffer) { | |
| 281 // like I care | |
| 282 } | |
| 283 } | |
| 276 } | 284 } |
