Hi,
Yes, if you want to use the same semaphore in different tasks (for example to control the access into critical code sections for handling shared ressources - I assume that’s the usecase you’re talking about), you have to share the ident from SemCreate() to all of the tasks they want to use SemAcquire() and SemRelease().
As I know, SemCreate() uses native Automation Runtime semaphores (I mean semaphores with a operating system-wide scope), so I can’t imagine that they’re deleted by a program transfer. I assume they’re really only delete by reboot or by SemDelete()… but to be honest, I haven’t had a closer look into it until today.
Best regards!