Making a C library thread safe

Viewed 2645

I am writing a shared library in C. I know C functions are not thread safe.

My library routines looks like,

struct lib_handle {
....
};

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

Every method takes a pointer to lib_handle object. All the state is stored inside this structure. No global variables are used.

I assume if each thread creates it's own lib_handle instances, multiple threads can use the library functions. Since each thread has it's own handle, everythibg should work.

I haven't validated this assumption yet. I am wondering what you guys think about this design and do you thing I can state my library as thread safe given each thread has it's own handles?

Any help would be great!

3 Answers
Related