[sane-devel] Q: threads and pipes

Gerhard Jaeger gerhard@gjaeger.de
Tue, 13 Jan 2004 07:51:24 +0100


On Monday 12 January 2004 20:56, Oliver Rauch wrote:
> > So I think you can't close the pipe in threads.
> >
> > Bye,
> >   Henning
> I tried what happens when the pipe is closed when threads are used.
> It is better to keep the pipe opened :)

indeed it is better ;-)
You should always keep in mind, that when using threads you still live in the
same process-space - per definition. This means, that nothing will be
inheritet like in the fork case. In your reader thread you have the same
pipe-descriptors, like in the main programm context. If you close it in the
thread, then it's closed for the whole process. That's why I introduced the
sanei_thread_is_forked() function. 
That's also, why the MacOSX guys want to use threads instead of fork,
because of the buggy fork implementation, the descriptors are not inheritet
to the child process...

Good luck...