-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fifo fixes #3638
Fifo fixes #3638
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Some commentary just to make sure I understand the changes.
end | ||
if again then | ||
return dequeue(q, k) | ||
end -- note tail call |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess I'd never had reason to both replace the top element of the fifo and want to be called back on the thing I just pushed. That does seem a little odd to want, but I agree that this patch is probably a better thing to do if the k
onsumer asks for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did these changes around two years ago, but the code runs better with it.
IIRC it was that I forced code to send a whole file into the httpserver.lua module including giving the size non chunked but at the beginning and so had some uh, well "interesting" usings of the whole thing.
Should have changed the api instead of hiding it behind specific parametrs, but well.
It just stopped sending in certain cases and I tracked it down to having to return what I just pushed.
@@ -58,7 +58,15 @@ local function wrap(sock) | |||
-- Either that was a function or we've hit our coalescing limit or | |||
-- we didn't ship above. Ship now, if there's something to ship. | |||
if s ~= nil then | |||
if sslan == 0 then sock:send(s) else sock:send(ssla .. s) end | |||
if sslan == 0 then | |||
if #s > 0 then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, avoiding send
-ing 0-length things seems like a good idea. And while return
-ing ns or nil, true
below means we won't call gc()
this time, we will probably do so "soon" since we're about to be called back by the fifo
logic.
@HHHartmann as it's been approved, do you want to merge this? Or do you still plan to add changes given @nwf comments? |
Nope, not planning to add changes. |
Fixes problems I had during development.
Make sure all boxes are checked (add x inside the brackets) when you submit your contribution, remove this sentence before doing so.
dev
branch rather than for therelease
branch.docs/*
.To be completed below: Description of and rationale behind this PR.
This contains fixes for problems I found while using fifo.