RFR: 8267819: CoInitialize/CoUninitialize should be called on same thread
Ambarish Rapte
arapte at openjdk.java.net
Wed Jun 2 14:32:29 UTC 2021
On Thu, 27 May 2021 04:18:24 GMT, Alexander Matveev <almatvee at openjdk.org> wrote:
> JDK-8264737 introduced new code for audio device removal/arrival notifications which calls CoInitialize/CoUninitialize on separate threads. CoInitialize/CoUninitialize should be called on same thread, since initialization is per thread. Doing it on separate thread will result in unloading COM libraries on that thread and if it uses COM libraries it might not work correctly. Fixed by calling it on same thread in same way it is done in dshowwrapper.
modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-good/sys/directsound/gstdirectsoundnotify.cpp line 57:
> 55: bool bResult = false;
> 56:
> 57: if (FAILED(CoInitialize(NULL))) {
As per the [`CoUninitialize` doc](https://docs.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-couninitialize#remarks), `CoUninitialize` should also be called if `CoInitialize` returns S_FALSE.
Can you please check.
-------------
PR: https://git.openjdk.java.net/jfx/pull/521
More information about the openjfx-dev
mailing list