Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 2003 00:17:43 +0300
From:      "Petri Helenius" <pete@he.iki.fi>
To:        "Daniel Eischen" <eischen@pcnet1.pcnet.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: malloc(): error: recursive call
Message-ID:  <038a01c32495$6a1e17f0$812a40c1@PETEX31>
References:  <Pine.GSO.4.10.10305271407040.3076-100000@pcnet1.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>And what does `ldd libnetsnmp.so.x`, `ldd libfoo.y`, show?

They give empty replies.

>What is `ldd yourexecutable` show?

Itīs usually linked static but if I remove the -static line it says:
       libnetsnmp.so.5 => /usr/local/lib/libnetsnmp.so.5 (0x2807f000)
        libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x280fe000)
        libpcap.so.2 => /usr/lib/libpcap.so.2 (0x28209000)
        libkse.so.1 => /usr/lib/libkse.so.1 (0x28225000)
        libc.so.5 => /usr/lib/libc.so.5 (0x28246000)

>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.

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 is
linked in.

I have only I686_CPU on my kernel config and I donīt include pthread.h
to all object files because itīs not supposed to be neccessary. (only those
which call pthread_* functions) The code is compiled on a machine with
no SMP and run on both SMP and non-SMP machines.

Do I understand correctly that libkse mutexes always require syscall
when locking and unlocking?

Pete



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?038a01c32495$6a1e17f0$812a40c1>