Sono in esecuzione su Linux e mi piacerebbe essere in grado di effettuare chiamate di funzioni parallele in una libreria condivisa (.so) che sfortunatamente non è protetta da thread (credo che abbia delle strutture dati globali).Carica più copie di una libreria condivisa
Per motivi di prestazioni, non voglio semplicemente racchiudere le chiamate di funzione in un mutex.
Quello che mi piacerebbe fare è generare, diciamo 4 thread, e anche caricare 4 copie della stessa libreria nella memoria del processo. Ciascun thread quindi effettua le chiamate di funzione nella propria copia della libreria.
Sfortunatamente, dlopen non mi consente di caricare più istanze di qualsiasi libreria.
Qualcuno conosce qualche metodo che mi consenta di caricare la libreria più di una volta? (Oltre a creare 4 copie del file .so, ognuna con un nome diverso)
Per coloro che hanno bisogno di un esempio, implementato il confronto [qui] (https://github.com/ikoryakovskiy/not_threadsafe_test). – Ivan