I am trying to understand the IPC call in kdb. Does IPC opens multiple channel for communication between client and server one for client and other for server?
h:hopen `::port_number
A sync call to server over IPC communication channel should not it be blocked till response is received?
h"1+1"
But when I trying to make a sync call from server (in .z.pg) in same request, server request is getting filled first.
Server Side -
.z.pg:{.z.w"func[]";show "server >> ",string .z.p;"hello"}
Client side -
.z.pg:{show "client .z.pg >",string .z.p };
func:{show "client Function >>",string .z.p};
How this IPC commnunication flow is working as kdb is single threaded?
Or there is something internally which uses multiple threads for it. e.g. one thread is waiting for response while other is free to server request on same communication channel.