Добрый день!
Есть библиотека:
LibTomCrypt у нее есть удобные методы шифрования.
Для ускорения процесса шифрования была предложена идея распараллелить шифрование на все ядра системы. Для этого был использован пул потоков
http://ashishchoure.blogspot.com/2010/05/simplest-threadpool-example-using-c.html в модернизированном варианте.
поток == thread
Проблема в том, что когда в пуле 2 и больше потоков и потоки пытаются вызвать метод шифрования — то один из потоков замерзает — мы не возвращаемся из метода по шифрованию — либа лочит наш поток.
либа собрана статически и статически линкуется к нашему приложению. Ставить лок на использование либы в конкретном месте — не вариант, т.к. шифрование будет ограничиваться линейным шифрованием в либе — которое так и будет проходить в один поток.
мне же нужно в каждом потоке создать экземпляр либы и отдавать каждому экземпляру работу из своего потока.
предложите идеи по реализации? примеры кода?
Спасибо!
07.12.13 20:48: Перенесено модератором из 'C/C++' — Кодт