Estoy ejecutando Linux, y me gustaría poder hacer llamadas de función paralelas en una biblioteca compartida (.so) que desafortunadamente no es segura (supongo que tiene estructuras de datos globales).Cargar copias múltiples de una biblioteca compartida
Por motivos de rendimiento, no quiero simplemente envolver las llamadas de función en un mutex.
Lo que me gustaría hacer es generar, decir 4 hilos, y también cargar 4 copias de la misma biblioteca en la memoria de proceso. Cada hilo hace que la función llame a su propia copia de la biblioteca.
Desafortunadamente, dlopen no me permite cargar más de una instancia de cualquier biblioteca.
¿Alguien sabe de algún método que me permita cargar la biblioteca más de una vez? (Además de hacer 4 copias del archivo .so, cada una con un nombre diferente)
Para aquellos que necesitan un ejemplo, implementaron la comparación [aquí] (https://github.com/ikoryakovskiy/not_threadsafe_test). – Ivan