mirror of
https://github.com/LibreOffice/core.git
synced 2025-07-20 18:18:30 +00:00

If there are multiple Java URP bridges that get disposed simultaneously, there was a race in that one JobQueue could receive first its own dispose(), save that disposeId as _doDispose, then receive an unrelated dispose() and overwrite its _doDispose with that other disposeId, and only then get to the check of _doDispose == _disposeId in removeJob(), which would thus never succeed and cause the thread to hang in that loop forever. So leverage the fact that the _disposeId, instead of being just an opaque token, actually is the JavaThreadPool that initiated the disposing, so can be used to check whether a JobQueue got disposed. (And rename some entities to make their meaning more obvious.) (Which then required reworking parts of the test code that checks the internals of the Java URP bridge.) Change-Id: If7f4f494b0f7e7f17e0a5c6a458582ad9bed3054 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187476 Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com> Tested-by: Jenkins
Java UNO Types Generator
Implements types for the Java UNO typesystem.