我有一个为 RSA 定制的 OpenSSL 引擎。在那个 OpenSSL 引擎中,我有一个我想以原子方式使用的共享资源。问题是,当mod_ssl从具有多线程的 Apache 网络服务器调用此引擎时,每个线程都会初始化此引擎并尝试使用该共享资源,从而导致未定义的结果。
我想用它semaphore来锁定这个共享资源,但问题是我不能semaphore从引擎内部初始化,因为每个mod_ssl线程都会初始化一个新的引擎实例,所以在引擎本身初始化信号量是行不通的。
我想知道是否有一种方法可以初始化semaphore每个线程可以访问的全局变量?我named semaphores在sem_overview中阅读过;似乎这对我来说可能会有所帮助,但我不明白它是如何工作的。
那么,任何想法,如何初始化一个全局信号量来同步两个线程?