Skip to content
Snippets Groups Projects
  • Andy Green's avatar
    fc7c5e45
    reflect send completeness in lws_write return · fc7c5e45
    Andy Green authored
    
    under load, writing packet sizes to the socket that are normally fine
    can do partial writes, eg asking to write 4096 may only take 2800 of
    it and return 2800 from the actual send.
    
    Until now lws assumed that if it was safe to send, it could take any
    size buffer, that's not the case under load.
    
    This patch changes lws_write to return the amount actually taken...
    that and the meaning of it becomes tricky when dealing with
    compressed links, the amount taken and the amount sent differ.  Also
    there is no way to recover at the moment from a protocol-encoded
    frame only being partially accepted... however for http file send
    content it can and does recover now.
    
    Small frames don't have to take any care about it but large atomic
    sends (> 2K) have been seen to fail under load.
    
    Signed-off-by: default avatarAndy Green <andy.green@linaro.org>
    fc7c5e45
    History
    reflect send completeness in lws_write return
    Andy Green authored
    
    under load, writing packet sizes to the socket that are normally fine
    can do partial writes, eg asking to write 4096 may only take 2800 of
    it and return 2800 from the actual send.
    
    Until now lws assumed that if it was safe to send, it could take any
    size buffer, that's not the case under load.
    
    This patch changes lws_write to return the amount actually taken...
    that and the meaning of it becomes tricky when dealing with
    compressed links, the amount taken and the amount sent differ.  Also
    there is no way to recover at the moment from a protocol-encoded
    frame only being partially accepted... however for http file send
    content it can and does recover now.
    
    Small frames don't have to take any care about it but large atomic
    sends (> 2K) have been seen to fail under load.
    
    Signed-off-by: default avatarAndy Green <andy.green@linaro.org>