threads/121343: pthread_cond_wait hanging in libthr
David Xu
davidxu at FreeBSD.org
Wed Mar 5 03:30:08 UTC 2008
The following reply was made to PR threads/121343; it has been noted by GNATS.
From: David Xu <davidxu at FreeBSD.org>
To: josh.carroll at gmail.com
Cc: freebsd-gnats-submit at FreeBSD.org
Subject: Re: threads/121343: pthread_cond_wait hanging in libthr
Date: Wed, 05 Mar 2008 11:30:06 +0800
Josh Carroll wrote:
>> I don't know what really happened, but if your program is using
>> threads, it is better to link it with thread library directly.
>> Can you dump ldd result ?
>
> /usr/local/bin/ushare:
> libupnp.so.3 => /usr/local/lib/libupnp.so.3 (0x4063d000)
> libthreadutil.so.4 => /usr/local/lib/libthreadutil.so.4 (0x40771000)
> libixml.so.2 => /usr/local/lib/libixml.so.2 (0x40877000)
> libc.so.7 => /lib/libc.so.7 (0x40982000)
> libthr.so.3 => /lib/libthr.so.3 (0x40b97000)
> liblwres.so.30 => /usr/lib/liblwres.so.30 (0x40cac000)
>
OK.
>> I have ushare up and running:
>> apple# ps xaHl | grep ushare
>> apple# sockstat -4l
>
> root at pflog:~# ushare -D
> root at pflog:~# ps xaHl | grep ushare
> 0 14812 1 0 44 0 9260 1552 umtxn Ss ?? 0:00.00 ushare -D
> 0 14812 1 0 44 0 9260 1552 umtxn Ss ?? 0:00.00 ushare -D
> 0 14968 12265 0 44 0 5864 1160 - R+ p0 0:00.00 grep ushare
> root at pflog:~# sockstat -4l | grep ushare
>
> I created a new ushare.conf for the above, which contains only:
>
> USHARE_NAME=test
> USHARE_IFACE=em1
> USHARE_PORT=
> USHARE_DIR=/tmp
> USHARE_OVERRIDE_ICONV_ERR=
>
> Thanks,
> Josh
>
I added -lpthread to link command (I found you don't have it),
and this is why it works on my machine, you might try it.
cc -I/usr/local/include -O2 -fno-strict-aliasing -pipe -Wall -W
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT
-L/usr/local/lib -o ushare cds.o
cms.o msr.o http.o presentation.o metadata.o mime.o services.o
buffer.o util_iconv.o content.o cfgparser.o trace.o redblack.o osdep.o
ushare.o -lupnp -
lthreadutil -lixml -lpthread
More information about the freebsd-threads
mailing list