8014254: Selector in HttpServer introduces a 1000 ms delay when using KeepAlive
Rearrange event-handling code to remove bottle-neck. Also reviewed by mhall@mhcomputing.net. Reviewed-by: chegar, alanb
This commit is contained in:
parent
823dd51602
commit
162500725a
@ -321,15 +321,7 @@ class ServerImpl implements TimeSource {
|
||||
public void run() {
|
||||
while (!finished) {
|
||||
try {
|
||||
ListIterator<HttpConnection> li =
|
||||
connsToRegister.listIterator();
|
||||
for (HttpConnection c : connsToRegister) {
|
||||
reRegister(c);
|
||||
}
|
||||
connsToRegister.clear();
|
||||
|
||||
List<Event> list = null;
|
||||
selector.select(1000);
|
||||
synchronized (lolock) {
|
||||
if (events.size() > 0) {
|
||||
list = events;
|
||||
@ -343,8 +335,14 @@ class ServerImpl implements TimeSource {
|
||||
}
|
||||
}
|
||||
|
||||
/* process the selected list now */
|
||||
for (HttpConnection c : connsToRegister) {
|
||||
reRegister(c);
|
||||
}
|
||||
connsToRegister.clear();
|
||||
|
||||
selector.select(1000);
|
||||
|
||||
/* process the selected list now */
|
||||
Set<SelectionKey> selected = selector.selectedKeys();
|
||||
Iterator<SelectionKey> iter = selected.iterator();
|
||||
while (iter.hasNext()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user