Do threads conflict?

Dan Nelson dnelson at allantgroup.com
Mon Oct 13 14:38:41 PDT 2003


In the last episode (Oct 13), Mark said:
> I just installed Sendmail::Milter, which I believe uses the ithreads
> model for Perl. I created my own Milter (Perl-threaded 5.8.0), and
> everything runs fine... Except that now, when the Milter is running,
> tinyproxy 1.5.0 goes haywire, filling up its log like crazy with this
> message:
> 
> "Accept returned an error (Resource temporarily unavailable) ... retrying."
> 
> The only thing tinyproxy and the Milter have in common, is that they
> both use threads.
> 
> Is there perhaps something that prevents both programs from using
> threads? Perhaps the threads-enabled version of the daemonized perl
> Milter keeps a shared library locked? So, now I can run either one or
> the other, but not both. I use this on FreeBSD 4.7R.

They shouldn't conflict.  That sounds like a libc_r bug; I think the
wrapper for accept() should retry the accept() call for the user.

You might want to try updating to 4.8; there were a couple of important
commits to libc_r that fixed bugs that usually affected threaded
daemons:

2002-10-22 09:44  fjoe
	don't allow the uthread kernel pipe to use the same descriptors as stdio

2003-06-03 09:09  ru
        fix for a stale stdio descriptors flags bugs.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list