Hum, this doesn't sound fun, however we ran into a condition with recursive
use of mutexs that sounds familiar you might replace any mutex code in mondo
with the following extra "pthread_mutexattr_settype" call.

    pthread_mutexattr_init(&_mutex_attrs);
    pthread_mutexattr_settype(&_mutex_attrs, PTHREAD_MUTEX_RECURSIVE_NP);
    pthread_mutex_init(&_mutex, &_mutex_attrs);

You will have to go back to using native threads though.


-----Original Message-----
From: Kevin Cosgrove [mailto:[EMAIL PROTECTED]
Sent: Friday, October 24, 2003 12:06 PM
To: [EMAIL PROTECTED]
Subject: Re: can pthread and pth coexist 



On 24 October 2003 at 16:32, Steve Alstrin <[EMAIL PROTECTED]> wrote:

> Ok i'm really confused on what it is your trying to do. Are you
> trying to build a package with pth libpthread instead of the
> system libpthread?

Yes, exactly.

> If so you should install pth libpthread somewhere other than
> the system lib and include dirs, such as /usr/local/lib and
> /usr/local/include. Then whatever your building with the pth
> libpthread makesure that it looks in /usr/local first when
> resolving includes and libs, i.e to build a program called
> test.c with pth threads do the following.
>
> gcc -o test test.c -I/usr/lcoal/include -L/usr/local/lib
> -lpthread
>
> I'm running on Mandrake 9.0 and building Opensource packages
> using this technic.

That is just what I did.  My libpth14 stuff all lives in
/usr/local

> However I did build pth myself and didn't use the Mandrake
> package, which you might want to try, heres the link to the
> source.
>
> http://www.gnu.org/directory/GNU/pth.html

I did about what you did.  I started with Mandrake's source RPM
and salted it to give me the same results as what you got.  I
ran ldd on my executable to make sure that it gets pthreads from
/usr/local, and it does.  This is how I discovered that Pth's
"make install" doesn't install the .a nor .so.* stuff, at least
not in Pth version 1.4.

> P.S. Is this mondo not working with native threads?

Right again.  Mondo <http://www.mondorescue.org> is a
backup/restore and disaster recovery program.  It uses pthreads
when it does backup/restore with tapes.  I need to use tapes
due to the size of my backup.  Tape backup/restore is broken
with Mondo on Mandrake ~> 8.0, and I use Mandrake 9.0.  Mondo's
backup/restore is also broken on SuSE, but works on Red Hat,
Debian, Gentoo, and many others.  The Mondo developers say
that the Mandrake/SuSE problems are due to a "broken pthreads"
implementation on those distributions, but they don't have
any hard facts to support that.  I reported this as a bug to
Mandrake, and they said that pthreads works for every other
application, and that they pass all the LSB tests.  I looked at
how many applications use the system pthreads, and it's dozens
or hundreds.  I'm not getting much help out of either Mandrake,
nor the Mondo team.  Although I did get the Pth suggestion from
another Mondo mailing list lurker.

I tried Pth's pthreads last night, and it hangs in the same way
as the system pthreads does.  I'm trying to understand what that
might tell me.  There isn't much pthreads code in the Mondo
code base.  I think I need to teach myself how to write pthread
routines to see if I can reimplement that stuff in Mondo so that
it works.

As for the fact that Mondo works on Red Hat, I did some googling
last winter about this and found that there was quite a buzz
about broken pthreads and 3-4 reimplementations of it.  I learned
that Red Hat has significantly rewritten parts of pthreads and
patched their kernel to use their version.  Later, maybe in
Linux Journal, I read that the kernel folks had agreed on which
pthreads reimplementation to go with, and that the new stuff will
be included in kernel version 2.6.  My hope is that all these
troubles with Mondo on Mandrake will go away when 2.6 is adopted
and stable.  My guess would be that's about a year away.

Cheers....


______________________________________________________________________
GNU Portable Threads (Pth)            http://www.gnu.org/software/pth/
Development Site                      http://www.ossp.org/pkg/lib/pth/
Distribution Files                          ftp://ftp.gnu.org/gnu/pth/
Distribution Snapshots                 ftp://ftp.ossp.org/pkg/lib/pth/
User Support Mailing List                            [EMAIL PROTECTED]
Automated List Manager (Majordomo)           [EMAIL PROTECTED]
______________________________________________________________________
GNU Portable Threads (Pth)            http://www.gnu.org/software/pth/
Development Site                      http://www.ossp.org/pkg/lib/pth/
Distribution Files                          ftp://ftp.gnu.org/gnu/pth/
Distribution Snapshots                 ftp://ftp.ossp.org/pkg/lib/pth/
User Support Mailing List                            [EMAIL PROTECTED]
Automated List Manager (Majordomo)           [EMAIL PROTECTED]

Reply via email to