如何在进程启动期间从静态库初始化posix信号量?

时间:2013-03-05 15:16:03

标签: static-libraries semaphore

我有一个定义信号量的静态库。在调用库之前需要初始化信号量(因为它可以安全地使用来自同一进程的多个线程)。

因此,我想在启动过程期间初始化(例如通过运行sem_init)库的信号量。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

// This seems to solve the problem. Init(void) will run before main()

void Init(void) __attribute__((constructor));
void Init(void) // This will always run before main()
{
    printf("HSA LIB Init\n");
    sem_init (&HSA_lib.semaphore, 0, 1);
}
相关问题