![]() |
|
Message-ID: <Z50y5RJCfm21noLM@voyager> Date: Fri, 31 Jan 2025 21:30:29 +0100 From: Markus Wichmann <nullplan@....net> To: musl@...ts.openwall.com Cc: Daniele Personal <d.dario76@...il.com> Subject: Re: pthread_mutex_t shared between processes with different pid namespaces Am Fri, Jan 31, 2025 at 10:31:46AM +0100 schrieb Daniele Personal: > IIUC, if it is not locked, the __pthread_mutex_timedlock will acquire > it and return 0 (don't understand if with the first check or with the > __pthread_mutex_trylock) and everything works. > > If instead it is locked the problem arises only inside the container. > If it was a pthread_mutex_lock it waits forever, if it was a timed lock > it exits after the timeout and you can retry. > > Is this correct? > Essentially yes. If uncontended, kernel space never gets involved at all and everything just works, but if contended, futex wait and futex wake do not meet each other if issued from different PID namespaces. Thus they end up waiting until the timeout expires. Unless there is no timeout, then they wait until the user gets bored and kills the process. Ciao, Markus
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.