Re: Who changed /proc// in 2.6.0-test5-bk9?

Albert Cahalan
2003-10-02T04:26:56Z

On Wed, 2003-10-01 at 23:35, Ulrich Drepper wrote:
> Linus Torvalds wrote:
>
> > I think /proc/self most likely _should_ point into the thread, not the
> > task.
>
> As much as I want to not see this, I fear I have to agree.
>
> There is, for instance, no guarantee that all CLONE_THREAD clones also
> have CLONE_FILES set. Then using /proc/self/%d for some thread-local
> file descriptor will return the process group leaders file descriptor,
> not the own.

[meaning /proc/self/fd/%s instead]

In that case, don't you already have a severe mess?
For example, some kind of fd-related signal needs to
be delivered to the shared queue. So that happens,
but who can tell which "fd 42" it belongs with?

IMHO, if you want separate files, CLONE_THREAD should
not be in your clone() flags. (and then users call the
resulting thing a group of processes that share stuff,
instead of calling it a single process)

Also consider what the "fuser" and "lsof" programs must
do if threads don't share file descriptors. Ow, ow, ow!!!
These programs must scan /proc/*/task/*/fd/* to find all
open files. If threads share files, then "only" the tgid
level must be scanned.