www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - exit(1)?

reply Shriramana Sharma <samjnaa_dont_spam_me gmail.com> writes:
http://dlang.org/phobos/std_getopt.html has a line in an example saying 
exit(1);

Surely this works only if core.stdc.stdlib is imported? Should the example 
be modified to show the import?

And is exit() the canonical way to exit the current process even in D?

-- 
Shriramana Sharma, Penguin #395953
Dec 16 2015
parent reply Jakob Ovrum <jakobovrum gmail.com> writes:
On Thursday, 17 December 2015 at 05:02:50 UTC, Shriramana Sharma 
wrote:
 http://dlang.org/phobos/std_getopt.html has a line in an 
 example saying exit(1);

 Surely this works only if core.stdc.stdlib is imported? Should 
 the example be modified to show the import?

 And is exit() the canonical way to exit the current process 
 even in D?
Ouch, that's not good. `exit` is not a good way to terminate a D program. It doesn't call destructors, including module destructors. The example should be restructured to `return 1;` from `main`.
Dec 16 2015
next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2015-12-17 06:11, Jakob Ovrum wrote:

 Ouch, that's not good. `exit` is not a good way to terminate a D
 program. It doesn't call destructors, including module destructors. The
 example should be restructured to `return 1;` from `main`.
I agree with that, but why don't the runtime register a function with "atexit" that cleans up everything? -- /Jacob Carlborg
Dec 16 2015
parent Jakob Ovrum <jakobovrum gmail.com> writes:
On Thursday, 17 December 2015 at 07:33:36 UTC, Jacob Carlborg 
wrote:
 I agree with that, but why don't the runtime register a 
 function with "atexit" that cleans up everything?
I think it might be possible, but it doesn't sound trivial. In particular, all threads and fibers managed by druntime need to have their stacks rewinded.
Dec 17 2015
prev sibling parent Shriramana Sharma <samjnaa_dont_spam_me gmail.com> writes:
Jakob Ovrum wrote:

 The example should be restructured to `return 1;`
 from `main`.
https://github.com/D-Programming-Language/phobos/pull/3875 -- Shriramana Sharma, Penguin #395953
Dec 17 2015