Plan 9 from Bell Labs’s /usr/web/sources/patch/applied/apewait/readme

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


fixed many things, including a memory leak.
it doesn't forget about previously seen pids if WNOHANG set.
it doesn't hang in some cases when WNOHANG set.
it returns status correctly for things it has put on the list.
it handles pid 0 consistently
(posix says same process group; here it has always been equivalent to -1,except in the wait4 version one part did and another didn't)
it now fills in a struct rusage if provided (though most of it is zero).
it should be easier to follow:
	see if there is a wait record already;
		if not
			and WNOHANG set, see if wait will not block (if it will, return);
		otherwise wait for the pid requested and enlist all wait records that do not match;
	set optional status and rusage;
	free the record and return pid.
its source format is more plan 9-ish.

i've added struct rusage to sys/resource.h,
and in sys/wait.h made the declarations of wait4
and rusage conditional on _BSD_EXTENSION,
and wait4 says struct rusage* not void*

Unix has indeed got very smelly.  according to linux lists, posix is
going to add another wait variant, so watch this space ... i can't wait.

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.