Под таймаутом понимается заданный отрезок времени или момент абсолютного времени, до окончания которого разрешено ожидать определённое событие. Таймауты могут быть реализованы с помощью таймеров общего назначения. Более удобно использовать специализированные средства API.
Наиболее часто такая потребность возникает при обмене сообщениями: клиент, посылая сообщение серверу, не желает ждать ответа вечно. В этом случае удобно использовать вызовы ядра, устанавливающие тайм-ауты на состояния блокировки. Тайм-аут также полезен в сочетании с функцией pthread_join: завершения потока тоже не всегда хочется ждать. Ответственной за формирование тайм-аутов ядра является функция timer_timeout(), представленная в следующем фрагменте.