bash.im ithappens.me zadolba.li
7935

Ку-ку, Берлин!

Представьте себе: у вас большая фирма, и большей части сотрудников нужно периодически работать на выезде в разных городах, причём сотрудники понятия не имеют, в какой город их отправляют, до тех пор, пока не прибудут на вокзал.

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

Те и другие сотрудники прибывают на вокзал. О ужас: специальный персонал, который их встречает, покупает берлинской группе билеты в Кукуево, а другой группе — в Берлин! И сотрудники, ни о чём не подозревая, преспокойно отправляются в чужие командировки.

В Берлине с распростёртыми объятиями встречают кукуевскую группу, кормят и поят их в ресторанах, селят в отель, а те, попробовав связаться с необходимыми людьми и не добившись успеха, продолжают на халяву есть-пить, кутить в отеле, ничего не делать и радоваться жизни. Из головного офиса их не беспокоят, потому как считают, что с выданной работой они справятся сами.

В Кукуеве тем временем разворачиваются драматические события. Прибывшая берлинская группа, которую никто не встретил, активно пытается выйти на контакт в соответствии с выданными инструкциями. Местная бандитская группировка, видя поведение не по понятиям, захватывает сотрудников, мутузит их, отбирает телефоны и сажает в подвал. Через некоторое время бандитам удаётся склонить часть сотрудников на свою сторону, их выпускают, и сотрудники начинают скрыто проводить свою разрушительную политику.

В итоге переговоры в Берлине провалены, часть сотрудников в Кукуеве просто потеряна, а другая делает совсем не то, что от них ожидали. И если срыв берлинских переговоров ещё как-то можно было пережить, диссидентов реально было поймать и уволить, то потеря сотрудников становится полным крахом для компании. Когда вы пытаетесь позвонить захваченному сотруднику, сидящему в кукуевском подвале, происходит unhandled exception.

* * *

Именно так чувствовал себя управляющий поток в моём приложении и созданные им объекты, когда диспетчер отправил их на обработку не в те очереди из-за неправильного if().