I think lines 849 and 853 of tkfbox.tcl need a catch
round them (otherwise "configure -state" can be, and
is, called on a label). Anyway, when the catch is
added it fixes the problem and our existing code works
fine again. Was their a change here? Platform is Linux
kernel 2.4.20 (SuSE 8.2 Pro). Seems to work fine when
there are no children.
Logged In: YES
user_id=79902
I cannot see how that code could be calling 'configure
-state' on a label other than by memory corruption. If
there is memory corruption then, alas, all bets are off.
Since fork() is not used in the Tcl/Tk core except within
TclpCreateProcess() which has been thoroughly tested over a
long period of time, I suspect that the fault is elsewhere.
What code contains the fork()?
Logged In: YES
user_id=788941
Our code uses fork (followed by exec etc) - we use multiple processes
all the time. BTW, we are talking about a mixture of C++ and the C tk
funcs as well as the scripting stuff. Everything worked absolutely fine
with all our programs till this release - that's why I wondered whether
there was a change made here. I just thought others may have this
problem and this change might help. What harm does the catch do?
Just ignores a call to configure a label. I doubt it is memory corruption
as the problem appeared in a lot of different programs in different
places. It would take a lot of work to check. When you have an object
which might be one thing or another and an operation on one of them
will cause an error, isn't it better to check (or catch it)? Anyway, I only
posted it because others may be pulling their hair out because their
existing code won't run properly now either. I thought it might help.
Attached is a log of just one place where it happens.
text file
Logged In: YES
user_id=72656
Are you sure that you are using the correct runtime libs with
the correct version of Tk? -state is an option for labels, added
in 8.3 or 8.4.