about summary refs log tree commit diff
path: root/include/spawn.h
Commit message (Collapse)AuthorAgeFilesLines
* rework mechanism for posix_spawnp calling posix_spawnRich Felker2018-09-121-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.
* add no-op POSIX_SPAWN_USEVFORK to spawn.hRich Felker2017-04-221-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.
* implement new posix_spawn flag POSIX_SPAWN_SETSIDRich Felker2017-04-221-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.
* fix some restrict-qualifier mismatches in newly added interfacesRich Felker2012-11-271-2/+2
| | | | | these should have little/no practical impact but they're needed for strict conformance.
* add support for thread scheduling (POSIX TPS option)Rich Felker2012-11-111-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.
* remove all remaining redundant __restrict/__inline/_Noreturn defsRich Felker2012-09-081-5/+1
|
* use restrict everywhere it's required by c99 and/or posix 2008Rich Felker2012-09-061-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.
* fix various errors in function signatures/prototypes found by nszRich Felker2011-09-131-2/+2
|
* initial implementation of posix_spawnRich Felker2011-05-281-0/+67
file actions are not yet implemented, but everything else should be mostly complete and roughly correct.