Tcl Source Code

Check-in [e81fd56959]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[723a2f4ac3] Coroutine needs to allow exceptions so that we avoid top-level anomalies.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | bug-723a2f4ac3
Files: files | file ages | folders
SHA3-256: e81fd56959bc43a68b513bba58b515b77c137f2db471b1084200625b1978258a
User & Date: dgp 2018-08-02 12:38:43
Context
2018-08-02
12:38
[723a2f4ac3] Coroutine needs to allow exceptions so that we avoid top-level anomalies. Leaf check-in: e81fd56959 user: dgp tags: bug-723a2f4ac3
2018-07-31
19:49
Remove some actually dead code check-in: a887506f5e user: jan.nijtmans tags: core-8-6-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclBasic.c.

9085
9086
9087
9088
9089
9090
9091

9092
9093
9094
9095
9096
9097
9098
    iPtr->execEnvPtr = corPtr->eePtr;

    TclNRAddCallback(interp, NRCoroutineExitCallback, corPtr,
	    NULL, NULL, NULL);

    /* ensure that the command is looked up in the correct namespace */
    iPtr->lookupNsPtr = lookupNsPtr;

    Tcl_NREvalObj(interp, Tcl_NewListObj(objc-2, objv+2), 0);
    iPtr->numLevels--;

    SAVE_CONTEXT(corPtr->running);
    RESTORE_CONTEXT(corPtr->caller);
    iPtr->execEnvPtr = corPtr->callerEEPtr;







>







9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
    iPtr->execEnvPtr = corPtr->eePtr;

    TclNRAddCallback(interp, NRCoroutineExitCallback, corPtr,
	    NULL, NULL, NULL);

    /* ensure that the command is looked up in the correct namespace */
    iPtr->lookupNsPtr = lookupNsPtr;
    Tcl_AllowExceptions(interp);
    Tcl_NREvalObj(interp, Tcl_NewListObj(objc-2, objv+2), 0);
    iPtr->numLevels--;

    SAVE_CONTEXT(corPtr->running);
    RESTORE_CONTEXT(corPtr->caller);
    iPtr->execEnvPtr = corPtr->callerEEPtr;