[fix] Socket: Fix stale read/write indexes in `_hx_std_socket_poll_ev… #1251
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.
…ents` on error/empty sets
Previously,
_hx_std_socket_poll_eventscould exit early onselect()/poll()errors without resetting the ready index arrays. This left stale values inp->ridx/p->widx, causing incorrect results when the socket set was empty or when sockets were removed. In Haxe this manifested as phantom entries (e.g. index "1" still marked ready after deregistration, orpoll([])returning[null]).This change ensures
p->ridx[0]andp->widx[0]are always initialized to-1at function entry, and remain consistent even ifselect()/poll()returns an error. With this fix, empty socket sets no longer yield spurious ready indexes, and poll() on an empty registry correctly returns[]without mutating the input array.