Всем добрых суток! Дан бинарник библиотеки неких вычислительных функций, написанных на асемблере, исходников нет, как следствие, глубокого понимания внутренностей данных функций тоже нет. Есть следующий теоретический вопрос : есть ли возможность безопасного использования данных функций в многопоточном приложении? Понимаю, что можно "ограничить" все вызовы из данной библиотеки мьютексами, однако нет уверенности, что они не станут конфликтовать с другими функциями приложения, например с malloc(). Разрешите мои сомнения плиз.
Ответ
В общем случае, такая библиотека может Вам стоить бессонных ночей, потраченных на отладку. Не рекомендую к использованию. Если я вообще что-либо пониманию, то тут даже критические секции толком не помогут. Зависит от того создается ли отдельная копия библиотеки на каждый поток. Я лично уверен, что нет. А раз так, то какая-нибудь хитрая ф-ция, модифицирующая внутренние переменные библиотеки и завязанная на их значения, вызванная несколько раз из разных потоков, полностью нарушит логику работы библиотеки.
Комментариев нет:
Отправить комментарий