Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

pid_block(2)  —  System Calls

NAME

pid_block, pid_unblock − stops (blocks) or resumes (unblocks) the specified process

LIBRARY

Standard C Library (libc.a)

SYNOPSIS

#include <types.h>
#include <sys/time.h>

int pid_block
        (struct timeval ∗tp,
        long flags);

int pid_unblock
        (pid_t pid
        long flags);

PARAMETERS

tpSpecifies the timeout value for the blocked process.  If tp is NULL, the process sleeps until either it receives a signal or it is unblocked by a pid_unblock. 

pidSpecifies the process ID of the process to unblock. 

flagsSpecifies flags that can be passed to the pid_block() and pid_unblock() functions.

Note

Currently, the only valid value for flags is NULL. 

DESCRIPTION

The pid_block() function blocks execution of the process until one of the following conditions occurs:

       •The process is unblocked by the pid_unblock() function.

       •A signal is sent to the process. 

       •The optional timeout period expires. 

The pid_unblock function forces the specified process, previously suspended via a call to pid_block, to be made runnable. 

Unless you are operating with superuser authority, pid_unblock can affect only processes that you own.  When operating with superuser authority, you can unblock any process. 

NOTES

The pid_block and pid_unblock functions are not portable.  The behavior of these functions when called from a multithreaded application is nondeterministic. 

RETURN VALUES

Upon successful completion, the pid_block() and pid_unblock() functions return a value of 0.  Otherwise, they return a value of −1 and set errno to indicate the error:

[EFAULT]
The pid parameter specified an invalid address. 

[EINVAL]
The tp parameter specified a time that was too large to be handled, or the pid specified to the pid_unblock function was not found. 

[EPERM]The real or saved user ID does not match the real or effective user ID of the target process or the calling process does not have appropriate privilege. 

[EINTR]A signal interrupted the suspended process. 

[ETIME]System call timed out. 

FILES

/usr/include/sys/time.h

/usr/include/types.h

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026