• J
    client rpc: Use event loop for writing · 9e747e5c
    Jiri Denemark 提交于
    Normally, when every call has a thread associated with it, the thread
    may get the buck and be in charge of sending all calls until its own
    call is done. When we introduced non-blocking calls, we had to add
    special handling of new non-blocking calls. This patch uses event loop
    to send data if there is no thread to get the buck so that any
    non-blocking calls left in the queue are properly sent without having to
    handle them specially. It also avoids adding even more cruft to client
    IO loop in the following patches.
    
    With this change in, non-blocking calls may see unpredictable delays in
    delivery when the client has no event loop registered. However, the only
    non-blocking calls we have are keepalives and we already require event
    loop for them, which makes this a non-issue until someone introduces new
    non-blocking calls.
    9e747e5c
virnetclient.c 53.6 KB