Re: [m-users.] Calling exit(3) from a foreign predicate

Volker Wysk <[email protected]> Thu, 25 Jan 2024 14:40:06 +0100
Newsgroups gmane.comp.lang.mercury.general
Message-ID <[email protected]>
Am Donnerstag, dem 25.01.2024 um 16:05 +1100 schrieb Julien Fischer:
> Hi,
> 
> On Wed, 24 Jan 2024, Volker Wysk wrote:
> 
> > Calling exit(3), without calling mercury_runtime_terminate() before, works.
> > All thread are terminated and the program exits. It's only
> > mercury_runtime_terminate() that blocks. I've read somewhere that it waits
> > for all threads to terminate. Is there another function which doesn't? I'd
> > like to properly shut down the Mercury runtime, if possible.
> 
> Yes, Mercury programs do not terminate until all threads created by
> calls to spawn/3 terminate; mercury_runtime_terminate() will block until
> this occurs. As it stands at the moment, you will need to arrange for
> any remaining threads to terminate.

I see. 

But I can still call exit(3) and do a hard exit to the Mercury runtime and
all threads, not performing shutdown. (Except for what the exit(3) function
does.)

That doesn't seem to be that bad to me. Or am I missing something that
should, in any case, be terminated properly?

Cheers,
Volker
_______________________________________________
users mailing list
[email protected]
https://lists.mercurylang.org/listinfo/users