> -- Сергей Губанов писал(а):
> Т.е., вот этот пример:А Ваш код что?

Все условия и действия, требующие эксклюзивности, вынесены в отдельный объект. Все методы этого объекта (или не все, тут надо еще подумать) являются эксклюзивно-условными. Т.е., невозможна ситуация, когда один метод объекта не закончил свою работу с состоянием, а другой метод пытается ему помешать.