From owner-freebsd-threads@FreeBSD.ORG Tue May 27 16:29:40 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6708F37B401 for ; Tue, 27 May 2003 16:29:40 -0700 (PDT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9622443F75 for ; Tue, 27 May 2003 16:29:39 -0700 (PDT) (envelope-from eischen@pcnet5.pcnet.com) Received: from pcnet5.pcnet.com (localhost [127.0.0.1]) by mail.pcnet.com (8.12.8/8.12.1) with ESMTP id h4RNTcqJ002249; Tue, 27 May 2003 19:29:38 -0400 (EDT) Received: from localhost (eischen@localhost)h4RNTbks002245; Tue, 27 May 2003 19:29:38 -0400 (EDT) Date: Tue, 27 May 2003 19:29:37 -0400 (EDT) From: Daniel Eischen To: Petri Helenius In-Reply-To: <038a01c32495$6a1e17f0$812a40c1@PETEX31> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN Content-Transfer-Encoding: QUOTED-PRINTABLE cc: Daniel Eischen cc: freebsd-threads@freebsd.org Subject: Re: malloc(): error: recursive call X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 23:29:40 -0000 On Wed, 28 May 2003, Petri Helenius wrote: > >And what does `ldd libnetsnmp.so.x`, `ldd libfoo.y`, show? >=20 > They give empty replies. >=20 > >What is `ldd yourexecutable` show? >=20 > It=B4s usually linked static but if I remove the -static line it says: > libnetsnmp.so.5 =3D> /usr/local/lib/libnetsnmp.so.5 (0x2807f000) > libcrypto.so.3 =3D> /usr/lib/libcrypto.so.3 (0x280fe000) > libpcap.so.2 =3D> /usr/lib/libpcap.so.2 (0x28209000) > libkse.so.1 =3D> /usr/lib/libkse.so.1 (0x28225000) > libc.so.5 =3D> /usr/lib/libc.so.5 (0x28246000) >=20 > >malloc is thread safe and we've been using it fine > >with all our tests. I suspect you're using another > >library that is using libc_r or something. >=20 > malloc works for me with for example linuxthreads. So I do believe that > the the trigger for malloc locking works, however looking at the code, > spinlocks are implemented differently depending on which thread library i= s > linked in. Also, you do need a relatively recent kernel. There are a couple of flags in each thread's mailbox that the kernel needs to recognize. This change was committed to the kernel around April 21, 2003 --=20 Dan Eischen