From: Zoran V. <zv...@ar...> - 2005-10-22 07:20:23
|
Am 21.10.2005 um 21:37 schrieb Zoran Vasiljevic: > > The problem is that signal handling is completely messed up. > =10Not 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= |