Estoy escribiendo una biblioteca compartida en C. Sé que las funciones C no son seguras para hilos.Haciendo que una biblioteca C sea segura
Mis rutinas de biblioteca parece,
struct lib_handle {
....
};
int lib_init(lib_handle **handle);
int lib_process(lib_handle *handle);
....
....
Cada método tiene un puntero a lib_handle
objeto. Todo el estado se almacena dentro de esta estructura. No se usan variables globales.
Supongo que si cada subproceso crea sus propias instancias lib_handle
, varios subprocesos pueden usar las funciones de la biblioteca. Como cada hilo tiene su propio mango, everythibg debería funcionar.
No he validado esta suposición todavía. Me pregunto qué piensan ustedes sobre este diseño y ¿creen que puedo decir que mi biblioteca es segura para subprocesos dado que cada subproceso tiene sus propios identificadores?
¡Cualquier ayuda sería genial!
Esta biblioteca no usa ninguna otra biblioteca que no sea SQLite. SQLite en sí mismo es seguro para subprocesos. –
Oye, +1, finalmente una pregunta sensata. –