This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Thread-safe creation of UNIX domain sockets


* Carlos O'Donell:

> On Sat, Dec 27, 2008 at 8:56 AM, Florian Weimer <fw@deneb.enyo.de> wrote:
>> Is it possible to create UNIX domain sockets with specific file system
>> permissions in a thread-safe way?
>>
>> In a single-threaded program, it's possible to set the umask to 0777,
>> create the socket, restore the umask, and chmod the path to the
>> intended permission set.  In a multi-threaded program, this is
>> obviously racy.
>
> Please explain the race condition, and why the obvious synchronization
> primitives don't help.

Setting the umask affects the entire process.  Another thread, using
some library, might need to change the umask at the same time.  If
different code bases are involved, they will use different mutexes,
and not achieve mutual exclusion.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]