diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2006-09-19 22:07:34 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2006-09-19 22:07:34 (GMT) |
commit | 878bd0a7feb871724bb85195d93e819f31db9d5b (patch) | |
tree | db5b4c6f736c17647d89e82a7dcb4ce40f178e01 /generic | |
parent | 5c8f1e3833d8c8fa8b70890bb850e7b0e87467ce (diff) | |
download | tcl-878bd0a7feb871724bb85195d93e819f31db9d5b.zip tcl-878bd0a7feb871724bb85195d93e819f31db9d5b.tar.gz tcl-878bd0a7feb871724bb85195d93e819f31db9d5b.tar.bz2 |
Fix nasty bug with limits, vwait's (C) traces, and interpreter restart...
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclEvent.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/generic/tclEvent.c b/generic/tclEvent.c index 907ce15..b2fc70e 100644 --- a/generic/tclEvent.c +++ b/generic/tclEvent.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclEvent.c,v 1.67 2006/05/12 18:12:07 das Exp $ + * RCS: @(#) $Id: tclEvent.c,v 1.68 2006/09/19 22:07:34 dkf Exp $ */ #include "tclInt.h" @@ -1151,9 +1151,7 @@ Tcl_VwaitObjCmd( while (!done && foundEvent) { foundEvent = Tcl_DoOneEvent(TCL_ALL_EVENTS); if (Tcl_LimitExceeded(interp)) { - Tcl_ResetResult(interp); - Tcl_AppendResult(interp, "limit exceeded", NULL); - return TCL_ERROR; + break; } } Tcl_UntraceVar(interp, nameString, @@ -1171,6 +1169,10 @@ Tcl_VwaitObjCmd( "\": would wait forever", NULL); return TCL_ERROR; } + if (!done) { + Tcl_AppendResult(interp, "limit exceeded", NULL); + return TCL_ERROR; + } return TCL_OK; } |