Ну, в пределах одного потока у вас не может быть "двух системных вызовов select ()", потому что первый вызов должен закончиться, прежде чем вы сможете начать второй вызов.Но да, это совершенно безопасно, даже если они do совместно используют дескрипторы: оба вызова создают новые объекты для возврата, нет повторного использования переменных, которые могли бы повлиять на них (как это может быть с static
переменными в C.)
Даже если бы у вас было несколько потоков, это было бы хорошо, поскольку модуль select
осторожно удерживает GIL до фактического вызова select
.В этом случае вы должны избегать совместного использования дескрипторов.