mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-06 03:05:30 -05:00
more buffering
This commit is contained in:
parent
1532d92540
commit
dc5af2e7e6
2 changed files with 15 additions and 9 deletions
|
|
@ -161,8 +161,8 @@ module TCP_server = struct
|
||||||
Ev_loop.wait_readable sock Cancel_handle.dummy ignore;
|
Ev_loop.wait_readable sock Cancel_handle.dummy ignore;
|
||||||
accept_ sock
|
accept_ sock
|
||||||
|
|
||||||
class base_server ?(listen = 32) ?(buf_pool = Buf_pool.dummy) ~runner
|
class base_server ?(listen = 32) ?(buf_pool = Buf_pool.dummy)
|
||||||
~(handle : conn_handler) (addr : Sockaddr.t) :
|
?(buf_size = 4096) ~runner ~(handle : conn_handler) (addr : Sockaddr.t) :
|
||||||
t =
|
t =
|
||||||
let n_active_ = A.make 0 in
|
let n_active_ = A.make 0 in
|
||||||
let st = A.make Created in
|
let st = A.make Created in
|
||||||
|
|
@ -214,8 +214,8 @@ module TCP_server = struct
|
||||||
Fd.close_noerr client_fd)
|
Fd.close_noerr client_fd)
|
||||||
in
|
in
|
||||||
|
|
||||||
let@ buf_in = buf_pool.with_buf 4096 in
|
let@ buf_in = buf_pool.with_buf buf_size in
|
||||||
let@ buf_out = buf_pool.with_buf 4096 in
|
let@ buf_out = buf_pool.with_buf buf_size in
|
||||||
|
|
||||||
let ic = Buf_reader.of_fd client_fd ~buf:buf_in in
|
let ic = Buf_reader.of_fd client_fd ~buf:buf_in in
|
||||||
let oc = Buf_writer.of_fd client_fd ~buf:buf_out in
|
let oc = Buf_writer.of_fd client_fd ~buf:buf_out in
|
||||||
|
|
@ -226,9 +226,11 @@ module TCP_server = struct
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
let create ?(after_init = ignore) ?listen ?buf_pool ~runner
|
let create ?(after_init = ignore) ?listen ?buf_pool ?buf_size ~runner
|
||||||
~(handle : conn_handler) (addr : Sockaddr.t) : t =
|
~(handle : conn_handler) (addr : Sockaddr.t) : t =
|
||||||
let self = new base_server ?listen ?buf_pool ~runner ~handle addr in
|
let self =
|
||||||
|
new base_server ?listen ?buf_pool ?buf_size ~runner ~handle addr
|
||||||
|
in
|
||||||
after_init self;
|
after_init self;
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
@ -256,10 +258,11 @@ module TCP_client = struct
|
||||||
let@ () = Fun.protect ~finally in
|
let@ () = Fun.protect ~finally in
|
||||||
f sock
|
f sock
|
||||||
|
|
||||||
let with_connect ?(buf_pool = Buf_pool.dummy) addr (f : _ -> _ -> 'a) : 'a =
|
let with_connect ?(buf_pool = Buf_pool.dummy) ?(buf_size = 4096) addr
|
||||||
|
(f : _ -> _ -> 'a) : 'a =
|
||||||
with_connect' addr (fun sock ->
|
with_connect' addr (fun sock ->
|
||||||
let@ buf_in = buf_pool.with_buf 4096 in
|
let@ buf_in = buf_pool.with_buf buf_size in
|
||||||
let@ buf_out = buf_pool.with_buf 4096 in
|
let@ buf_out = buf_pool.with_buf buf_size in
|
||||||
|
|
||||||
let ic = Buf_reader.of_fd ~buf:buf_in sock in
|
let ic = Buf_reader.of_fd ~buf:buf_in sock in
|
||||||
let oc = Buf_writer.of_fd ~buf:buf_out sock in
|
let oc = Buf_writer.of_fd ~buf:buf_out sock in
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@ module TCP_client : sig
|
||||||
|
|
||||||
val with_connect :
|
val with_connect :
|
||||||
?buf_pool:Buf_pool.t ->
|
?buf_pool:Buf_pool.t ->
|
||||||
|
?buf_size:int ->
|
||||||
Sockaddr.t ->
|
Sockaddr.t ->
|
||||||
(Buf_reader.t -> Buf_writer.t -> 'a) ->
|
(Buf_reader.t -> Buf_writer.t -> 'a) ->
|
||||||
'a
|
'a
|
||||||
|
|
@ -88,6 +89,7 @@ module TCP_server : sig
|
||||||
class base_server :
|
class base_server :
|
||||||
?listen:int ->
|
?listen:int ->
|
||||||
?buf_pool:Buf_pool.t ->
|
?buf_pool:Buf_pool.t ->
|
||||||
|
?buf_size:int ->
|
||||||
runner:Moonpool.Runner.t ->
|
runner:Moonpool.Runner.t ->
|
||||||
handle:conn_handler ->
|
handle:conn_handler ->
|
||||||
Sockaddr.t ->
|
Sockaddr.t ->
|
||||||
|
|
@ -97,6 +99,7 @@ module TCP_server : sig
|
||||||
?after_init:(t -> unit) ->
|
?after_init:(t -> unit) ->
|
||||||
?listen:int ->
|
?listen:int ->
|
||||||
?buf_pool:Buf_pool.t ->
|
?buf_pool:Buf_pool.t ->
|
||||||
|
?buf_size:int ->
|
||||||
runner:Moonpool.Runner.t ->
|
runner:Moonpool.Runner.t ->
|
||||||
handle:conn_handler ->
|
handle:conn_handler ->
|
||||||
Sockaddr.t ->
|
Sockaddr.t ->
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue