Am 21.10.2005 um 21:37 schrieb Zoran Vasiljevic:


The problem is that signal handling is completely messed up.
Not only that it does not correctly handle the sigint, it
also fails when opening pipes (exec) and alike. On Linux it
breaks as well, but with core.

This is very very bad...



Indeed, and I'm the one to blame!

The problem was:  Tcl_FindExecutable(argv[0]);

This problematic call has SIGNIFICANT side-effects.
It efefctively initializes Tcl library for the process.

Before VFS changes, this was first called way after
all signal blocking and forks we may had, so Tcl was
always initialized in a ready-to-go process.

After VFS changes, I had to move this way up, before
any file-related operation was possibly underway.
Unformtunately, after that, we were happily blocking
signals, forking etc, which totally freaked Tcl libaray.
The Tcl library itself is not safe in relation to fork
and is very picky about that.

So, eventually I will have to reorganize the nsmain.c
in respect of what is started when...

Sorry for all this confusion.

Zoran

Reply via email to