Линкование либы в несколько потоков одного процесса.
От: squid_etc  
Дата: 06.12.13 18:18
Оценка:
Добрый день!

Есть библиотека: LibTomCrypt у нее есть удобные методы шифрования.

Для ускорения процесса шифрования была предложена идея распараллелить шифрование на все ядра системы. Для этого был использован пул потоков http://ashishchoure.blogspot.com/2010/05/simplest-threadpool-example-using-c.html в модернизированном варианте.
поток == thread

Проблема в том, что когда в пуле 2 и больше потоков и потоки пытаются вызвать метод шифрования — то один из потоков замерзает — мы не возвращаемся из метода по шифрованию — либа лочит наш поток.

либа собрана статически и статически линкуется к нашему приложению. Ставить лок на использование либы в конкретном месте — не вариант, т.к. шифрование будет ограничиваться линейным шифрованием в либе — которое так и будет проходить в один поток.

мне же нужно в каждом потоке создать экземпляр либы и отдавать каждому экземпляру работу из своего потока.

предложите идеи по реализации? примеры кода?

Спасибо!

07.12.13 20:48: Перенесено модератором из 'C/C++' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.