Я до сих пор не понимаю, почему вы думаете, что это бесконечный цикл :).
Это «взлом» для пустого оператора, и причина этого в том, что компилятор может пожаловаться, когда он сталкивается с пустым оператором.
Из того, что я понимаю, блокировка переключения контекста зависит от архитектуры, и поэтому для архитектур, для которых блокировка не была определена, этот пустой оператор был определен, так что вам не нужно изменять schedule () для каждой архитектуры. Отсюда #ifndef ...