Re: file desctiptors in linux and multithreading
On Wed, 2008-10-29 at 09:10 -0700, Drago wrote:[color=blue]
> Hello, I am interested whether I can do connect() from different
> threads concurently.
> I found that doing close() from different threads on same fd, does
> nasty things, so ..does it applies to connect() ?
> Is it possible connect() to return same fd to concurent threads?
> Does libc has any concurency protection, if does ..from when? I am
> using is rather old libc-2.3.5.
> Or I just have to protect with mutexes all syscall functions?
> Thank you very much, in advance :)
To supplement what other posters have said:
Don't lose sight of the fact that all the threads are part of the *same*
process. They therefore share the same address space and the same set of
If you want proper isolation you must use separate *processes*, not
threads, i.e. call fork() not pthread_create(). You will then have total
isolation and can do what you like. The flip side is that communication
between processes is trickier than between threads.