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