2 войти в критическую секцию первым мог как поток, первым наткнувшийся на нехватку места, так и остальные. Пришлось бы усложнять логику, на решение кто же выделяет следующий блок, хотя по чесному конечно ничего сложного в этом нет
А вроде в критическую секцию потоки по одному заходят?
Подскажите, а как обрабатываются ситуации с многопоточными приложениями? Чаще всего приложение считывает системную информацию при старте и дальше использует её в работе. Соответственно, при «переезде» приложения с ноды с бОльшим количеством CPU/ядер на ноду с меньшим количеством CPU/ядер, приложение завершится с ошибкой? Или же есть какие-то решения в этой области?
А вроде в критическую секцию потоки по одному заходят?
Да, я именно это и имел в виду. Т.е. происходит ли смена маски (CPU affinity mask) в случае, если она не удовлетворяет условиям на новой ноде?