Tk Source Code

View Ticket
Login
Ticket UUID: 1736223
Title: tk::mac:: handlers do not throw bgerrors
Type: Bug Version: obsolete: 8.4.15
Submitter: duquette Created on: 2007-06-13 03:54:22
Subsystem: 66. Aqua Window Operations Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2026-10-08 12:12:36
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2026-10-08 12:12:36
Description:
I noted the following on tcl-mac: Using 8.4.15, I've noticed that if my ::tk::mac::ShowPreferences routine throws an error, it isn't handled by bgerror; it's simply swallowed with no evidence.  It was quite puzzling until I figured out what was going on.

So: is this expected behavior?  Do the other ::tk::mac handlers have the same behavior?  And is there any reason why errors in these routines shouldn't be handed to bgerror?

Daniel Steffen responded: 

all the tk::mac handlers currently use Tcl_GlobalEval() resp
Tcl_EvalEx() and ignore the returned result, it would not be difficult
to add error propagation via [bgerror], all that is missing is a call
to Tcl_BackgroundError() in case of error return.
Please file a bug to remind me to have look at this.
User Comments: jan.nijtmans added on 2026-10-08 12:12:36:

Fixed in [634ae60196973f77|trunk], backported to 9.0 and 8.6

Many thanks!


serhiy.storchaka added on 2026-09-25 06:59:38:

Fixed in 8.5.4 by [d831b78cd3]: errors in the ::tk::mac:: handlers go to bgerror. ::tk::mac::PerformService, added later, still ignored them. Proposed fix in branch macos-performservice-bgerror ([ca49088971]): it is now handled like the other handlers. Not tested on macOS.