On Thu, 23 Nov 2023 13:00:06 GMT, Anton Bobrov <d...@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 928:

> 926:         fp_pw_thread_loop_wait(pw.loop);
> 927:         if (hasPipewireFailed) {
> 928:             fp_pw_thread_loop_unlock(pw.loop);

The session may not be closed 
[immediately](https://github.com/openjdk/jdk/blob/master/src/java.desktop/unix/classes/sun/awt/screencast/ScreencastHelper.java#L62),
 so it could be reused later by a subsequent call.

So I suggest making it explicit:

Suggestion:

            fp_pw_thread_loop_unlock(pw.loop);
            doCleanup();

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

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

Reply via email to