Я разрабатываю проект, и я должен сделать оболочку для некоторых аппаратных функций.A Обертка для аппаратных функций
Мы должны записывать и считывать данные в энергонезависимую память. У меня есть библиотека с функциями чтения и записи от компании-продавца. Проблема в том, что эти функции следует вызывать с задержкой между каждым вызовом из-за характеристик оборудования.
Итак, мое решение - начать поток, сделать очередь и сделать мои собственные функции чтения и записи. Поэтому каждый раз, когда вызываются мои функции, данные будут храниться в очереди, а затем в потоке цикла будут фактически прочитаны или записаны в память. Мои функции будут использовать мьютекс для синхронизации доступа к очереди. Моя обложка будет на dll. Основной модуль вызовет мою функцию инициализации dll один раз, чтобы запустить поток, а затем он будет вызывать мои функции чтения/записи много раз из разных потоков.
Мои вопросы: безопасно ли это сделать? исходные функции не являются реентерабельными. Я не знаю, будет ли это проблемой. Есть лучший способ сделать это?
Любая помощь будет оценена по достоинству.
Жаль, что я забыл кое-что:
-The язык, который будет использоваться на C++
-Основной программа будет называть мою DLL-обертку, но и будет вызывать другие модули (DLL), которые собираются вызовите dll-оболочку.
Пожалуйста, уточните в заголовке или на темах, на каком языке вы используете, и это поможет людям с ответами найти ваш вопрос. – STW
Язык C++ – kepler
-Основная программа вызовет мою обертку dll, а также вызовет другие модули (dll), которые будут вызывать обертку dll. – kepler