On Wed, 31 Jul 2024 18:48:01 GMT, Phil Race <p...@openjdk.org> wrote:
>> I dont see any deadlock in my testing so I am using `isCancelled` . >> How do you normally "cancel" ongoing printing in macosx? I tried clicking on >> "x" in "Print Centre" when the specific print job is shown in the printer >> spooler and I dont see any deadlock for long printing tests like >> PrintAllFonts etc.. > > plugin mode is no longer a concern. > > So it seems to me that the worry is that some other thread holds the lock on > the PrinterJob, and > is waiting for a print loop to return from native code running on the AppKit > thread, which then up-calls to here and then needs to synchronize on the > PrinterJob. > Other cases that I see aren't from native so aren't a problem. > > "Coming to your question, I guess if there is a deadlock, calling cancelDoc > directly will also face the same" > > Yes whereas In the existing code it is run on the AppKit thread to avoid it > ... > It seems safest to restore the invokeLater. Ok..Restore invokeLater and handled/thrown PrinterAbortException in native.. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/20027#discussion_r1699431986