RFR: 8320655: awt screencast robot spin and sync issues with native libpipewire api

Alexander Zvegintsev azvegint at openjdk.org
Thu Nov 30 21:47:07 UTC 2023


On Thu, 23 Nov 2023 13:00:06 GMT, Anton Bobrov <duke at openjdk.org> wrote:

> This patch addresses the issues described in the https://bugs.openjdk.org/browse/JDK-8320655 by fixing the proper locking and signalling around libpipewire thread loop condition variables and also fixing libpipewire error detection and signalling and propagation to the screencast API. This makes the screencast robot stable enough to consistently make it thru the entire javax/swing jtreg suite without hanging and also significantly reduces CPU consumption as there is no longer any burning spinners since they are now waiting on related conditions proper.

src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c line 930:

> 928:             fp_pw_thread_loop_unlock(pw.loop);
> 929:             releaseToken(env, jtoken, token);
> 930:             return RESULT_ERROR;

I think that the fix can be improved a bit.
Right now it just gives a black image on failure. We can try to add another attempt to get the image we need.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16794#discussion_r1411292492


More information about the client-libs-dev mailing list