> This fixes a race condition between application and 'Print Job Thread' 
> threads when printing.
> 
> The race condition occurs when application thread calls `endJob()`, which in 
> effect sets the `jobDone` flag to true,
> and when the 'Print Job Thread' thread was in the `synchronized` block in 
> `waitForNextPage()` at that time.
> The 'Print Job Thread' thread checks `jobDone` flag after exiting the 
> `synchronized` block and, if it is true, skips the last page.
> 
> In this fix, not only the `jobDone` is checked, but also that there is no 
> other page to be printed.
> It was also needed to introduce a new flag 'jobCanceled', to skip the page if 
> the printing was canceled by 'cancelJob()'.

eduardsdv has updated the pull request incrementally with one additional commit 
since the last revision:

  8295324: Fix race condition in junit test

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

Changes:
  - all: https://git.openjdk.org/jfx/pull/916/files
  - new: https://git.openjdk.org/jfx/pull/916/files/fa47d169..fdec73d8

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=916&range=01
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=916&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jfx/pull/916.diff
  Fetch: git fetch https://git.openjdk.org/jfx pull/916/head:pull/916

PR: https://git.openjdk.org/jfx/pull/916

Reply via email to