我有一个定义信号量的静态库。在调用库之前需要初始化信号量(因为它可以安全地使用来自同一进程的多个线程)。
因此,我想在启动过程期间初始化(例如通过运行sem_init)库的信号量。我怎么能这样做?
答案 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);
}