0

セマフォを定義する静的ライブラリがあります。セマフォは、ライブラリを呼び出す前に初期化する必要があります (同じプロセスの複数のスレッドで安全に使用できるため)。

したがって、プロセスの起動時にライブラリのセマフォを初期化 (たとえば、sem_init を実行して) したいと考えています。どうやってやるの?

4

1 に答える 1

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);
}
于 2013-03-14T11:13:14.597 に答える