Sto scrivendo una libreria condivisa in C. So che le funzioni C non sono thread-safe.Creazione di una libreria C thread-thread
mie routine di libreria sembra,
struct lib_handle {
....
};
int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....
Ogni metodo prende un puntatore a lib_handle
oggetto. Tutto lo stato è memorizzato all'interno di questa struttura. Non vengono utilizzate variabili globali.
Suppongo che se ogni thread crea le proprie istanze lib_handle
, più thread possono utilizzare le funzioni della libreria. Poiché ogni thread ha il proprio handle, everythibg dovrebbe funzionare.
Non ho ancora convalidato questa ipotesi. Mi sto chiedendo cosa ne pensate di questo design e voi posso affermare la mia libreria come thread safe dato che ogni thread ha le proprie maniglie?
Qualsiasi aiuto sarebbe fantastico!
Questa libreria non utilizza alcuna libreria diversa da SQLite. SQLite stesso è thread-safe. –
Ehi, +1, finalmente una domanda sensata. –