MEM-013: POLLoop mutates a stale poller slot after re-entrant callback (abc/POL.c)

Now
DONE

POLLoop captures idx = POLFind(fd) and at = *data + idx from the pre-callback heap, runs at->callback(...), then tests/clears/ejects via the now-stale at/idx but the callback may call POLTrackEvents/POLIgnoreEvents/POLAddTime, which sUp/sDown-swap or eject heap elements, so the post-callback code operates on whichever poller now occupies that slot (possibly past the shrunk $len). Because POL_QUEUE is fixed-cap it stays in-allocation (no UAF), but it reads/writes the wrong poller and can double-eject. The goal is to re-resolve by fd after the callback.

Issues

Heap reorder under a re-entrant callback invalidates the captured slot.

Blockers

None. Triggered only by callbacks that mutate the poll set for a different fd mid-loop.

Planned

Re-fetch after the callback.