path: root/include/spawn.h
AgeCommit message (Collapse)AuthorLines
2019-08-30add posix_spawn [f]chdir file actionsRich Felker-0/+5
these are presently extensions, thus named with _np to match glibc and other implementations that provide them; however they are likely to be standardized in the future without the _np suffix as a result of Austin Group issue 1208. if so, both names will be kept as aliases.
2018-09-12rework mechanism for posix_spawnp calling posix_spawnRich Felker-1/+3
previously, a common __posix_spawnx backend was used that accepted an additional argument for the execve variant to call in the child. this moderately bloated up the posix_spawn function, shuffling arguments between stack and/or registers to call a 7-argument function from a 6-argument one. instead, tuck the exec function pointer in an unused part of the (large) pthread_spawnattr_t structure, and have posix_spawnp duplicate the attributes and fill in a pointer to __execvpe. the net code size change is minimal, but the weight is shifted to the "heavier" function which already pulls in more dependencies. as a bonus, we get rid of an external symbol (__posix_spawnx) that had no really good place for a declaration because it shouldn't have existed to begin with.
2017-04-22add no-op POSIX_SPAWN_USEVFORK to spawn.hRich Felker-0/+1
the bit is reserved anyway for ABI-compat reasons; this documents it and makes it so we can have posix_spawnattr_setflags check for flag validity without hard-coding an anonymous bit value.
2017-04-22implement new posix_spawn flag POSIX_SPAWN_SETSIDRich Felker-0/+1
this functionality has been adopted for inclusion in the next issue of POSIX as the result of Austin Group issue #1044. based on patch by Daurnimator.
2012-11-27fix some restrict-qualifier mismatches in newly added interfacesRich Felker-2/+2
these should have little/no practical impact but they're needed for strict conformance.
2012-11-11add support for thread scheduling (POSIX TPS option)Rich Felker-0/+5
linux's sched_* syscalls actually implement the TPS (thread scheduling) functionality, not the PS (process scheduling) functionality which the sched_* functions are supposed to have. omitting support for the PS option (and having the sched_* interfaces fail with ENOSYS rather than omitting them, since some broken software assumes they exist) seems to be the only conforming way to do this on linux.
2012-09-08remove all remaining redundant __restrict/__inline/_Noreturn defsRich Felker-5/+1
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker-11/+17
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
2011-09-13fix various errors in function signatures/prototypes found by nszRich Felker-2/+2
2011-05-28initial implementation of posix_spawnRich Felker-0/+67
file actions are not yet implemented, but everything else should be mostly complete and roughly correct.