On Thu, 31 May 2001, Bronek Kozicki wrote: > There are many differencies in handling signals in Win32 ad *nixes. I must > admit I do not know much about it in *nix but from Michal's article I > understand (someone pls. correct me if I'm wrong), that function handling > signal is called from the "external" process or thread. And this can result > in multithreaded execution of the function, which can cause problems (unless > function is aware of multithreaded execution). Not really. Upon delivery of asynchronous signal, current execution parameters are saved on the process stack, and defined signal handler is called. Then, when return is reached, original execution path is restored. This signal delivery process is handled by kernel-space, and can be controlled in numerous ways (signal delivery can be blocked, ignored, etc), but is asynchronous, so it can be delivered anywhere - in the middle of data modification or whatever... -- _____________________________________________________ Michal Zalewski [lcamtufat_private] [security] [http://lcamtuf.coredump.cx] <=-=> bash$ :(){ :|:&};: =-=> Did you know that clones never use mirrors? <=-=
This archive was generated by hypermail 2b30 : Thu May 31 2001 - 13:15:18 PDT