[sane-devel] Q: threads and pipes

Gerhard Jaeger gerhard at gjaeger.de
Tue Jan 13 06:51:24 GMT 2004


Hi,

On Monday 12 January 2004 20:56, Oliver Rauch wrote:
[SNIPSNAP]
> > 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...
  Gerhard





More information about the sane-devel mailing list