If the exiting thread has a destructor registered that keeps re-registering itself, the function loops forever. Implement approximation for the number of passes over the desctructor list as it was done before 9d26b82826d99. Maintain the count of destructors registered, and break out of the loop if we called more destructors then the memoized count times CXA_DTORS_ITERATIONS. __cxa_thread_call_dtors(3): bump number of iterations This allows more breezing room for somewhat weird code that registers thread-local destructors at destruction time. At the same time, we still limit the amount of iterations, making this aspect of the thread termination time-bound.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped