aboutsummaryrefslogtreecommitdiff
path: root/elymas/lib/net/alg/server.ey
diff options
context:
space:
mode:
Diffstat (limited to 'elymas/lib/net/alg/server.ey')
-rw-r--r--elymas/lib/net/alg/server.ey6
1 files changed, 4 insertions, 2 deletions
diff --git a/elymas/lib/net/alg/server.ey b/elymas/lib/net/alg/server.ey
index 9935016..73ab10c 100644
--- a/elymas/lib/net/alg/server.ey
+++ b/elymas/lib/net/alg/server.ey
@@ -94,13 +94,14 @@
sys .linux .epoll "++" via
- { ":" via "" ==inBuffer "" ==outBuffer
+ { ":" via "" ==inBuffer "" ==outBuffer 0 ==finished
<
{
outBuffer -01 cat =outBuffer
++EPOLLOUT ++EPOLLIN ++EPOLLERR bor bor :ctl
} =*write
{ :close } =*close
+ { 1 =finished } =*finish
> ::accept ":::" via <
{
4096 :read _ len
@@ -111,7 +112,8 @@
{
outBuffer _ :write -01 str .postfix
_ =outBuffer
- len { ++EPOLLOUT } { 0 } ? * ++EPOLLIN ++EPOLLERR bor bor :ctl
+ len _ { ++EPOLLOUT } { 0 } ? * ++EPOLLIN ++EPOLLERR bor bor :ctl
+ not finished and { :close } rep
} =*out
{ :::err } =*err
>