From 0e5baeed287186a786ecb89b10d534697cf93c12 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 18 Oct 2014 20:45:04 +0200 Subject: daq: nginx-lua - added workaround for write buffer overrun --- src/daq/nginx-lua/s5-nginx.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/daq/nginx-lua/s5-nginx.lua b/src/daq/nginx-lua/s5-nginx.lua index c38b692..6559e95 100644 --- a/src/daq/nginx-lua/s5-nginx.lua +++ b/src/daq/nginx-lua/s5-nginx.lua @@ -130,9 +130,17 @@ local send_data = function(sock, starttime) '"quality": "' .. s.quality .. '" }, ' json = json .. '"data": ' .. get_data_streamer(s.content, s.format, s.quality) json = json .. '}\n' - local ok, err = sock:send(json) - if not ok then - return nil, err + while true do + -- TODO: this should probably be done inside a seperate writer thread + local ok, err = sock:send(json) + if not ok then + if err ~= "resource temporarily unavailable" then + return nil, err + end + ngx.sleep(0.02) + else + break + end end end return true -- cgit v1.2.3