Unfortunately, this gives rise to a race condition: if a signal arrives immediately between checking the flag and calling select(), it will not be handled until select() returns for some other reason (for example, being interrupted by a frustrated user).
К сожалению, это приводит к состоянию гонки: если сигнал поступает сразу между проверкой флага и вызовом select(), то он не будет обработан до тех пор, пока из select() не будет произведён возврат, или по какой-либо другой причине (например, прерывании разочарованным пользователем).