Когда говорят «размер окна TCP», подразумевают TCP receive window, который регулируется получателем. Его же максимальное значение конфигурируется как maximum window size.
Выше перечислены congestion avoidance алгоритмы, задача которых определить размер другого окна — congestion window, который регулируется отправителем и получателю неизвестен.
Неужели ни автор статьи, ни читатели не видят, что вычисления, приведенные выше, выполняются в run-time, а не в compile-time? Что все эти функторы, описанные автором, вызываются в run-time? Автор не имеет базового понятия о шаблонном мета-программировании.
Из наиболее распространенных архитектур точно знаю, что out-of-order execution поддерживается sparc v8/v9, IA64, powerpc.
Про х86-64 верно только про AMD, так как Intel IA64 тоже поддерживает барьеры.
Когда нужно было разобраться, я смотрел исходный код gcc и opensolaris.
double-checked singleton не работает на архитектурах, поддерживающих out-of-order execution. На этих архитектурах его можно реализовать, только с использованием memory barriers.
Спасибо заранее
Когда говорят «размер окна TCP», подразумевают TCP receive window, который регулируется получателем. Его же максимальное значение конфигурируется как maximum window size.
Выше перечислены congestion avoidance алгоритмы, задача которых определить размер другого окна — congestion window, который регулируется отправителем и получателю неизвестен.
Про х86-64 верно только про AMD, так как Intel IA64 тоже поддерживает барьеры.
Когда нужно было разобраться, я смотрел исходный код gcc и opensolaris.
www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
a && !(a&(a-1))
Для случая a =0