diff --git a/website/content/en/status/report-2026-01-2026-03/pdwait.adoc b/website/content/en/status/report-2026-01-2026-03/pdwait.adoc new file mode 100644 index 0000000000..c4bd211ac3 --- /dev/null +++ b/website/content/en/status/report-2026-01-2026-03/pdwait.adoc @@ -0,0 +1,19 @@ +=== Process Descriptor API completion + +Contact: Konstantin Belousov + +FreeBSD offered the Process Descriptors facility for long time. +Its main use is in the Capsicum sandboxes where the handle is required to operate on an object, and process descriptor provided such handle. +Other operating systems provide similar facility under the same name. +The offered API was not complete, main lacking part being the man:pdwait[2] system call, the analog of man:wait[2] family, which operates on the process descriptor instead of the process id. + +The described project added man:pdwait[2] call. +Another important addition was the man:pdrfork[2] call, which provides the same fine-grained support for process copy construction as man:rfork[2], but also returns the process descriptor as the handle, like man:pdfork[2]. + +After pdwait and pdrfork addition, the natural extensions for the man:posix_spawn[3] facilities were possible. +Now the man:posix_spawnattr_setprocdescp_np[3] attribute requests that man:posix_spawn[3] returned process descriptor. +Another natural addition was man:posix_spawnattr_setexecfd_np[3] which specifies the executable image by file descriptor instead of the name. + +Together, the newly added features make the process descriptor complete and allow the use of posix_spawn in the sandboxes. + +Sponsor: The FreeBSD Foundation