 | | To ease the burden on programmers, 4.2BSD introduced the automatic restarting of certain system calls. The system calls that are automatically restarted are: ioctl, read, readv, write, writev, wait, and waitpid. If any of these calls is interrupted by a signal, it is automatically restarted when the signal handler function returns. Unfortunately, while this alleviated the need for writing code like that shown above, it broke just about every program that relied on the system call being interrupted! To solve this new problem, 4.3BSD allowed the programmer to disable this feature on a per-signal basis. | |
|