Если у вас есть несколько задач, ожидающих сигнала или события, тогда двоичный семафор не является правильным механизмом.При использовании двоичного семафора только одна задача может одновременно принимать семафор, и только одна задача будет готова к запуску, когда задан двоичный семафор.Я предполагаю, что каждая ожидающая задача может занять, а затем немедленно передать семафор следующей ожидающей задаче, но это кажется странным.
Можно ли просто сделать задачу Init задачей с наивысшим приоритетом, пока она не завершит необходимую инициализацию.Другие задачи не будут выполняться до тех пор, пока инициализация не будет завершена из-за более низкого приоритета.Когда инициализация завершена, вы можете удалить задачу Init или, возможно, понизить ее приоритет.
Если приоритет не является параметром, то вам, вероятно, следует использовать бит события (флаг события).Для вашего случая использования бит события является лучшим механизмом, чем двоичный семафор, поскольку несколько ожидающих задач могут быть готовы к запуску, когда задача Init сообщает об этом событии.