bash.im ithappens.me zadolba.li
3396

Смывайте за собой

17 июня 2010, 10:00

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

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

— Смотри: вот сокет.
— Угу.
— Вот этот отправляет, вот этот принимает.
— Угу.
— А теперь компилим. Запускаем — ошибка.
— И?
— Cтавим брейк, пошагово выполняем — работает.

Разбирались до утра. Курили матчасть, MSDN зачитали до дыр. Вроде всё правильно, но при выполнении программы неизменный error. Пошагово — как по маслу.

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

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