svn commit: r245494 - head/bin/pwait

Garrett Cooper yanegomi at gmail.com
Wed Jan 16 19:16:29 UTC 2013


On Wed, Jan 16, 2013 at 10:41 AM, Xin Li <delphij at delphij.net> wrote:

...

> Well, calling exit(3) actually do less on C++ (dtor's are not called
> in this case, if any local object is declared on stack, which is done
> when the code say 'return') but the difference is less on C.

Good to know -- thanks!

> In style(9) there is no explicit mention of using exit(3) but the
> example do use exit() instead of return() for main().

There's a fair amount of subtlety in style(9) ;)...

> By the way speaking for exit(3) preventing bugs on other OSes, do you
> have reference to these issue?  It sounds weird as I would see these
> as serious leakage which are normally fixed very quickly and we
> shouldn't be the first people who seeing them...

It wasn't really leakage, and it was only Windows (AFAICT) which is
its own special case. MSVC++ has copious warnings about using POSIX
APIs anyhow, so I figure it's a bad idea to depend on POSIX on Windows
:(...

There's a program that we have at $work that does dd equivalent logic
for writing/verifying files and what was happening is that whenever
the atexit handler was entered (basically whenever the terminating
condition was met) it would segfault on Windows. It might have been a
bug in terms of it entering the atexit(3) handler recursively (which
didn't occur on other OSes, e.g. FreeBSD, Linux, and OSX), but I
didn't take the time to track down the exact culprit (my goal was to
only stop the bleeding ;)..).

Thanks!
-Garrett


More information about the svn-src-all mailing list