Define custom task pool instead of default phobos.
This commit is contained in:
parent
5e79fba1b4
commit
01d48e9537
|
@ -13,8 +13,11 @@ import slf4d;
|
||||||
* and submitted to the standard task pool.
|
* and submitted to the standard task pool.
|
||||||
*/
|
*/
|
||||||
class TaskPoolHttp1Transport : Http1Transport {
|
class TaskPoolHttp1Transport : Http1Transport {
|
||||||
|
private TaskPool httpTaskPool;
|
||||||
|
|
||||||
this(HttpRequestHandler requestHandler, ushort port = 8080) {
|
this(HttpRequestHandler requestHandler, ushort port = 8080) {
|
||||||
super(requestHandler, port);
|
super(requestHandler, port);
|
||||||
|
this.httpTaskPool = new TaskPool(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
override void runServer() {
|
override void runServer() {
|
||||||
|
@ -31,13 +34,14 @@ class TaskPoolHttp1Transport : Http1Transport {
|
||||||
Socket clientSocket = serverSocket.accept();
|
Socket clientSocket = serverSocket.accept();
|
||||||
trace("Accepted a new socket.");
|
trace("Accepted a new socket.");
|
||||||
auto t = task!handleClient(clientSocket, requestHandler);
|
auto t = task!handleClient(clientSocket, requestHandler);
|
||||||
taskPool().put(t);
|
this.httpTaskPool.put(t);
|
||||||
trace("Added handleClient() task to the task pool.");
|
trace("Added handleClient() task to the task pool.");
|
||||||
} catch (SocketAcceptException e) {
|
} catch (SocketAcceptException e) {
|
||||||
warn("Failed to accept socket connection.", e);
|
warn("Failed to accept socket connection.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
serverSocket.close();
|
serverSocket.close();
|
||||||
|
this.httpTaskPool.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
override void stop() {
|
override void stop() {
|
||||||
|
|
Loading…
Reference in New Issue