Last night I went deeper in the Guile library code and I saw the reason of my application server shutdown. After invoking the gh_enter function, the first function that is called after the Guile initialization is the function gl_launch_pad, which calls my own function and then calls the exit system function. Then all my application server shutdowns!
I can replace this gh_launch_pad by my own launcher function, but I think my problem'll stay the same since the scm_boot_guile also calls the exit system function when ending. The code documentation explains that "(...) scm_boot_guile function exits, rather than returning, to discourage people from making that mistake.". "Yes, I see", to use the favorite reply of Ryo Hazuki !
I don't clearly understand the main idea of the Guile library initialization design. How can use it in an application that must be independent from a script interpreter (dynamic load and unload)?
>I'm encountering some problems with a development at home of a small
>server application in C++ using the Guile dynamic libraries for the
>Windows platform, included in the file guile-1.4.zip downloaded from
>One of my application's thread dynamically loads the Guile library
>(dynamic binding) and calls the gh_enter function (i.e. scm_boot_guile)
>to initialize the Scheme interpreter, and then... all the application's
>process shutdowns brutally! I was a bit confused, so I've developped a
>mono-threaded application to test this Guile library (static binding),
>and it rocks!
>So I've trie to investigate further, debugging the assembly code of the
>Guile library called by my server application code (this library doesn't
>include debug information, but I get the Guile source files from GNU web
>site), and trying to understand where it sucks.
>I've followed my instruction pointer until the scm_internal_lazy_catch
>code (throw.c) where I lost it, my baby crying and asking for her milk
>in the darkness of the night... Return to the reallity! I'll certainly
>continue my quest tonight, but I would prefer that a valiant knight, or
>a magician, gives here the exact reason of my trouble, if he've already
>"Thuong nhau qua, can nhau dau..."