releasedll/debugdll - странная проблема
Есть библиотека. Работает с юсб-устройством, которое эмулируется как ком-устройство. Ничего особенного в ней нет, реализует н-цать функций для создания интерфейса устройства (записать, считать и т.п.). После переделки библиотеки(служебные(внутренние) функции были переписаны как методы объектов, добавлена синхронизация, дабы упорядочить работу с неск. процессами и потоками юзающими устройство, перевели текстовые данные в юникод, обильно использовали стл(векторы и стринги) вместо массивов) появился глюк. Статические версии еще не пробовал, думаю там будет тоже.
Проблема:
В debugdll версии все хорошо, разве что стало чуть медленнее работать(копейки).
В releasedll — все очень грустно. Все компилиться, работает БЕЗ ошибок, но на каждую вызываемую из библиотеки функцию происходит задержка и весьма приличная. Т.е. функция, которая работать должна полсекунды работает несколько секунд а то и дольше. Баг пока не локализован, но подозрения есть — скорее всего где-то среди WaitFor.. есть кусок, где дожидается практически всего таймаута, а то и не дожидается вовсе, но тем не менее выполняет все что надо(хотя мог бы поклясться, что такого быть не должно — очень усердно проверял такие места).
Вопрос:
Чем отличаются debugdll от releasedll в контексте моей проблемы? Что такого может происходить в release, что не происходит в debug или происходит по-другому ? Я в растерянности.
p.s. в релизе оптимизация включена на макс. быстродействие.