From 231cd0b89d14a49a4b5de477046be01a9d365fb4 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Wed, 25 Jun 2008 18:44:25 +0000 Subject: * libs/httpd: Optimized performance again --- libs/httpd/luasrc/httpd.lua | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/libs/httpd/luasrc/httpd.lua b/libs/httpd/luasrc/httpd.lua index f471e6b0c..9f2dbcde1 100644 --- a/libs/httpd/luasrc/httpd.lua +++ b/libs/httpd/luasrc/httpd.lua @@ -48,13 +48,16 @@ function Thread.receive(self, ...) local chunk, err, part self.waiting = true - repeat - coroutine.yield() + while true do chunk, err, part = self.socket:receive(...) - until err ~= "timeout" - - self.waiting = false - return chunk, err, part + + if err ~= "timeout" then + self.waiting = false + return chunk, err, part + end + + coroutine.yield() + end end function Thread.resume(self, ...) -- cgit v1.2.3