Skip to content

Commit

Permalink
HTTP Server should allow custom concurrency models (#13428)
Browse files Browse the repository at this point in the history
  • Loading branch information
stakach committed May 6, 2023
1 parent 404726e commit 2886546
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/http/server.cr
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,12 @@ class HTTP::Server
listen
end

# Overwrite this method to implement an alternative concurrency handler
# one example could be the use of a fiber pool
protected def dispatch(io)
spawn handle_client(io)
end

# Starts the server. Blocks until the server is closed.
def listen : Nil
raise "Can't re-start closed server" if closed?
Expand All @@ -465,9 +471,7 @@ class HTTP::Server
end

if io
# a non nillable version of the closured io
_io = io
spawn handle_client(_io)
dispatch(io)
else
break
end
Expand Down

0 comments on commit 2886546

Please sign in to comment.