Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] at_exit functions not called during exit
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <xavier.leroy@i...>
Subject: Re: [Caml-list] at_exit functions not called during exit
> I noticed that functions registered with Pervasives.at_exit are
> not called when a C-library function calls exit. Is this a bug or
> a feature?

I'd say a feature.  Caml's at_exit functions are called when the
process stops because Caml asked it to, e.g. via Pervasives.exit
or an uncaught exception.  It wasn't clear to me whether you'd want to
do this as well if the C code decides to stop the process.

> Assuming it is a feature I experimented with atexit and callbacks
> to ocaml.

Yes, that's the way I'd recommend to get Caml finalization when C exits.

> Now I have the following question:
> When a ocaml program is going down, is there a point of time
> after which I should not callback from C to Ocaml (because
> libraries/the garbage collector are deinitialised)?

The OCaml runtime system, once initialized, is never de-initialized,
so I'd say you can call back from C to OCaml at any time after
initialization.

> Functions registered via at_exit are at least called during
> normal termination. And the manual says
>    They will not be called if
>    the program terminates because of an uncaught exception.
> which is not true in ocaml-3.04.

Well spotted.  Will fix the docs.

- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners