Dolda2000 GitWeb
/
jagi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ensure the client watcher has been properly closed before handling its constructed...
[jagi.git]
/
src
/
jagi
/
scgi
/
EventServer.java
diff --git
a/src/jagi/scgi/EventServer.java
b/src/jagi/scgi/EventServer.java
index
2de2e86
..
202b8dd
100644
(file)
--- a/
src/jagi/scgi/EventServer.java
+++ b/
src/jagi/scgi/EventServer.java
@@
-334,6
+334,7
@@
public class EventServer implements Runnable {
int headlen = 0;
ByteBuffer head = null;
Map<Object, Object> env = null;
int headlen = 0;
ByteBuffer head = null;
Map<Object, Object> env = null;
+ Request req = null;
Client(SocketChannel sk) {
this.sk = sk;
Client(SocketChannel sk) {
this.sk = sk;
@@
-401,8
+402,7
@@
public class EventServer implements Runnable {
if((events & SelectionKey.OP_READ) != 0) {
if((env == null) && !readhead())
return;
if((events & SelectionKey.OP_READ) != 0) {
if((env == null) && !readhead())
return;
- Request req = new Request(env, sk);
- submit(() -> EventServer.this.handle(req, handler));
+ req = new Request(env, sk);
handoff = true;
}
if(Driver.current().time() > (lastread + timeout))
handoff = true;
}
if(Driver.current().time() > (lastread + timeout))
@@
-410,6
+410,8
@@
public class EventServer implements Runnable {
}
public void close() {
}
public void close() {
+ if(req != null)
+ submit(() -> EventServer.this.handle(req, handler));
if(!handoff) {
try {
sk.close();
if(!handoff) {
try {
sk.close();