так ты загляни, там пять минут
Во первых вот тут
winner = ast_waitfor_n(watchers, pos, to);
заменяется на
winner = ast_waitfor_nandfds(watchers, pos, wakeupfds, wakeupfdsn, NULL, &waiteventfds, to);
Это позволяет разбудить поток с очередью для добавления ещё одного участника
А что его трогать. Это изменение ничего не меняет. И там и там под капотом +- одно и тоже.