Создание потокобезопасной библиотеки C

Я пишу общую библиотеку на C. Я знаю, что функции C не являются потокобезопасными.

Подпрограммы моей библиотеки выглядят так:

struct lib_handle {
....
};

int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....

Каждый метод принимает указатель на объект lib_handle. Все состояние хранится внутри этой структуры. Глобальные переменные не используются.

Я предполагаю, что если каждый поток создает свои собственные lib_handleэкземпляры, несколько потоков могут использовать библиотечные функции. Поскольку у каждого потока есть собственный дескриптор, все должно работать.

Я еще не подтвердил это предположение. Мне интересно, что вы, ребята, думаете об этом дизайне, и как вы думаете, могу ли я назвать свою библиотеку потокобезопасной, учитывая, что у каждого потока есть свои собственные дескрипторы?

Любая помощь будет здорово!

5
задан Navaneeth K N 17 August 2012 в 05:24
поделиться