[lkml]   [2000]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: thread rant
dean gaudet wrote:
> an example of brokenness in the traditional fd API is close-on-exec --
> there's a race between open()/socket()/pipe() and fcntl(FD_CLOEXEC) during
> which if another thread does a fork() it's possible the child will inherit
> an fd it shouldn't... working around it is painful. the model which
> NT/OS2 use for creating a new process scales better in the 99.99% case of
> stdin/out/err -- you only specify those fds you want to keep in the new
> process.

An obvious solution presents itself. O_CLOEXEC.

Glibc could easily be made to call fcntl(FD_CLOEXEC) for kernels that
don't implement O_CLOEXEC, so that applications can simply use the flag
and rely on it.

-- Jamie
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:38    [W:0.094 / U:0.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site