В нашем проекте мы используем семафор для синхронизации между родительским и дочерним процессами.выполните операцию семафора и удалите семафор при каждой синхронизации.
Через пару недель операция семопа завершилась неудачно с «недопустимым аргументом».любая утечка семафора из-за определенного процесса.
In man page i could see the possible reason for invalid argument could see below:
EINVAL The SemaphoreID parameter is not a valid semaphore identifier.
EINVAL The number of individual semaphores for which the calling process requests a SEM_UNDO flag would exceed the limit.
I am suspecting the point 2.
It is multithreaded process. So Howmany semaphore can be used at a time for a procees ?
What is the limit of "SEM_UNDO" ?
1) how to make sure that EINVAL is due to "SEM_UNDO" flag exceed limit. ?.
2) how to avoid the exceed limit ?
3) Is there any kernel variable needs to be configured for this issue (in AIX most of the kernals are dynamic)?
Заранее благодарим за помощь в этом