Подробный разбор нововведений в стандарте C++0x, касающихся многопоточности.

Разбираю разделы 1.10, 29 и 30 предварительной версии нового стандарта C++.

1. Разбор раздела 1.10, "Multi-threaded execution and data races".

* thread == thread of execution;
* гарантируется, что незаблокированные процессы в некоторый момент получат
  управление независимо от состояния заблокированных процессов;
* expression evaluations conflict: modify -> (memory location) -> access;
* ряд атомарных операций и операции над мьютексами являются опреациями
  синхронизации. Операции синхронизации по типу делятся на consume, aquire,
  release и одновременные "aquire+release". Операция синхронизации без
  ассоциированного участка памяти - это fence. Fence может быть aquire, release
  и (aquire + release).
  В добавление к этому существуют relaxed атомарные операции, не являющиеся
  операциями синхронизации, и атомарные операции read-modify-write;
* Существует modification order атомарного объекта. Modification order двух
  различных атомарных объектов не связаны между собой;
* release sequence в результате операции release (A): подпоследовательность
  модификаций в modification order, в которой A - первая операция, и каждая
  последующая операция:
	* выполнена тем же потоком, который выполнял A;
	или
	* является атомарной операцией read-modify-write;
* даётся определение A carries a dependency to B, достаточно очевидное;
* atomic store-release - это запись в atomic, совмещённая с семантикой release
  мьютекса. Аналогично - для load-acquire;
* [...]

Пример в самом низу страницы: http://www.hpl.hp.com/research/linux/atomic_ops/example.php4
     Мне кажется, что использование "!is_initialized" без AO_ некорректно.
     Но я всё ещё не могу судить об этом сознательно. Нужно понять, чем
     определяется корректность.
         - там стоит pthread_mutex_lock, в нём дело.

Статьи Herb Sutter на drdobbs.com - по теме.

Relacy race detector - иметь в виду (header-only, ~11K строк).

(Прервал анализ, выяснив, что с реализациями C++0x atomic пока плохо).

