Skip to content

Commit 057c56d

Browse files
committed
break socket send into chunks
1 parent cc5f422 commit 057c56d

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/nesper/servers/rpc/rpcsocket_queue_mpack.nim

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ proc sendChunks*(sourceClient: Socket, rmsg: string) =
3535
sourceClient.send(move sl)
3636
i = j
3737

38+
proc sendLength*(sourceClient: Socket, rmsg: string) =
39+
var rmsgN: int = rmsg.len()
40+
var rmsgSz = newString(4)
41+
for i in 0..3:
42+
rmsgSz[i] = char(rmsgN and 0xFF)
43+
rmsgN = rmsgN shr 8
44+
45+
sourceClient.send(move rmsgSz)
46+
3847
proc rpcMsgPackQueueWriteHandler*(srv: TcpServerInfo[RpcQueueHandle], result: ReadyKey, sourceClient: Socket, qh: RpcQueueHandle) =
3948
raise newException(OSError, "the request to the OS failed")
4049

@@ -56,12 +65,8 @@ proc rpcMsgPackQueueReadHandler*(srv: TcpServerInfo[RpcQueueHandle], result: Rea
5665
continue
5766

5867
var rmsg: string = msgpack2json.fromJsonNode(res)
59-
var rmsgN: int = rmsg.len()
60-
var rmsgSz = newString(4)
61-
for i in 0..3:
62-
rmsgSz[i] = char(rmsgN and 0xFF)
63-
rmsgN = rmsgN shr 8
6468

69+
sourceClient.sendLength(rmsg)
6570
sourceClient.sendChunks(rmsg)
6671

6772
except TimeoutError:

0 commit comments

Comments
 (0)