Interaction with the garbage collector
This module offer a convenient way to add a finaliser launching a
thread to a value, without having to use Lwt_unix.run in the
finalise f x ensures f x is evaluated after x has been
garbage collected. If f x yields, then Lwt will waits for its
termination at the end of the program.
finalise f x
Note that f x is not called at garbage collection time, but
latter in the main loop.
finalise_or_exit f x call f x when x is garbage collected
or (exclusively) when the program exit.
finalise_or_exit f x