Hi Alexander, I still want to use `libcurl` in PicoLisp and want default signal processing during long operations like `curl_easy_perform`, so I can i.e. terminate the script by Ctrl-C. I made this function (naming convensions are not so good):
(de defsigint Prg (let action_size 160 (buf defaction action_size (%@ "memset" NIL defaction 0 action_size) (buf oldaction action_size (%@ "sigaction" 'N 2 defaction oldaction) (run Prg) (%@ "sigaction" 'N 2 oldaction 0) ) ) ) ) This function sets SIGINT to default and then restores the original. This code is non-portable and hacky so I decided to patch PicoLisp to implement signal processing right way: make tools for saving, restoring signal handlers and make them universal instead of predefined set of signals. (I have an idea to make PicoLisp the only scripting tool on my Linux.) But I confused with the source code. I.e. I see `sighandler` func, I see that it used only in `sigChk` func. So I can't get a picture of how signal processing is working in PicoLisp. Could you make some brief explanations of functions of signal processing in PicoLisp please? If I will make a patch with new signal processing will you accept such patch? Regards, Constantine -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe