The current dispatch::thread_pool has a reproducible lifetime bug in the uniform scheduler. A stack-owned job is published to all workers, but completion only waits for the selected participants.
Nonparticipating workers can still observe and dereference the job pointer after the submitting thread has returned, producing ASan-detected stack use-after-scope/use-after-return failures.
Rather than making TBB/OpenMP mandatory, fVDB should replace this with a narrower internal parallel_for backend: persistent workers, atomic chunk claiming, caller participation, serial nested calls, exception
propagation, and sanitizer stress coverage.
The current dispatch::thread_pool has a reproducible lifetime bug in the uniform scheduler. A stack-owned job is published to all workers, but completion only waits for the selected participants.
Nonparticipating workers can still observe and dereference the job pointer after the submitting thread has returned, producing ASan-detected stack use-after-scope/use-after-return failures.
Rather than making TBB/OpenMP mandatory, fVDB should replace this with a narrower internal parallel_for backend: persistent workers, atomic chunk claiming, caller participation, serial nested calls, exception
propagation, and sanitizer stress coverage.