Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Overwrite the empty
queue.read
with a new slice.Why?
When we read off the
queue.read
slice, it essentially pops the first available element by doing this:(link to code)
So the entry where the event used to exist has been overwritten with a fresh instance of
Event
which will help avoid a memory leak (which was recently fixed). However the issue is that the underlying slice keeps growing. During a long running test the slice could grow to an unnecessarily length.To avoid this issue, when
queue.read
is empty and is swapped withqueue.write
, just before swapping them around the existingqueue.read
is overwritten with a new slice, freeing up the old potentially long slice. This should help avoid further memory leaks.Checklist
make lint
) and all checks pass.make tests
) and all tests pass.Related PR(s)/Issue(s)