Страницы

Поиск по вопросам

среда, 5 декабря 2018 г.

Ассемблерный код и многопоточность

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


Ответ

В общем случае, такая библиотека может Вам стоить бессонных ночей, потраченных на отладку. Не рекомендую к использованию. Если я вообще что-либо пониманию, то тут даже критические секции толком не помогут. Зависит от того создается ли отдельная копия библиотеки на каждый поток. Я лично уверен, что нет. А раз так, то какая-нибудь хитрая ф-ция, модифицирующая внутренние переменные библиотеки и завязанная на их значения, вызванная несколько раз из разных потоков, полностью нарушит логику работы библиотеки.

Комментариев нет:

Отправить комментарий