'Procedure cancelled' failure in long-running PDB operations
0 reputation · 07 May 2020, 06:41 UTC
Cancellation Responsiveness in the Procedural Database
GIMP utilizes a progress dialog to allow users to abort active operations. When a user triggers a cancellation, the Procedural Database (PDB) sets a cancellation flag. If the active procedure detects this flag, it terminates and reports the status as 'Procedure cancelled'.
However, the responsiveness of this mechanism depends entirely on the implementation of the specific procedure. While core operations typically check the flag frequently, certain third-party plug-ins or Script-Fu loops may omit these checks, causing the operation to ignore the user's request until the entire process completes.
This creates a discrepancy in behavior where some tools respond immediately to the progress dialog, while others remain locked despite the cancellation request.
- How can a developer ensure a custom plug-in consistently honors the cancellation flag during deep nested loops?
- Is there a documented method to force a timeout on a PDB procedure that has stopped responding to the progress dialog?