mirror of
https://github.com/Open-Argon/http.ar.git
synced 2026-10-28 09:43:55 +00:00
try fixing multi-threading bug and memory leak
This commit is contained in:
1 parent
3468ea57ed
commit
7f7d84ca49
3 files changed
+6
-7
No files matched your search
@@ -123,7 +123,7 @@ let handle(routes, conn, onErr) = do
|
||||
let route = routes[i]
|
||||
if (route.type == "middleware") do
|
||||
toTry.append(route)
|
||||
else if (request.method in route.methods) do
|
||||
else if (route.methods == true || request.method in route.methods) do
|
||||
let comparison = pathCompare.compare(route.path, request.path)
|
||||
if (comparison.match) do
|
||||
route.params = comparison.params
|
||||
|
||||
+1
-4
@@ -27,10 +27,7 @@ let server() = do
|
||||
throwError("Server already running")
|
||||
let starter() = do
|
||||
Socket = socket.server("tcp", class.port)
|
||||
for (i from 0 to class.numThreads) do
|
||||
let t = thread(()=listener.listener(Socket, routes, class.onErr))
|
||||
threads.append(t)
|
||||
t.start()
|
||||
listener.listener(Socket, routes, class.onErr)
|
||||
class.callback()
|
||||
let t = thread(starter)
|
||||
t.start()
|
||||
|
||||
+4
-2
@@ -1,5 +1,7 @@
|
||||
import "handleRequest" as handleRequest
|
||||
|
||||
let listener(Socket, routes, onErr) = do
|
||||
while (not Socket.isClosed()) try thread(()=handleRequest.handle(routes, Socket.accept(), onErr)).start()
|
||||
catch (e) if (onErr) onErr(e)
|
||||
while (not Socket.isClosed()) try do
|
||||
let accept = Socket.accept()
|
||||
thread(()=handleRequest.handle(routes, accept, onErr)).start()
|
||||
catch (e) if (onErr) onErr(e)
|
||||
Reference in new issue
Block a user