Bug in thread-safe malloc ?

From: Bob Palermo <bob_at_printrak.com>
Date: Tue, 28 May 1996 15:57:14 -0700

-- 
    Bob Palermo ( bob_at_printrak.com )



I am running OSF 3.2 Rev C and Rev D and have run into an into what
appears to be a bug in the thread-safe version of malloc.

Given the following program:

main()
{
    unsigned char *buff;
        
    buff = (unsigned char*) malloc( 4000*4502 );

    printf( "sleeping ...\n" );
    sleep( 20 );
}

If this program is built as follows:
    cc -o blorf blorf.c

then when this program runs it will have a virtual size of about 18.5M
( I used 'ps -o user,vsize,command | grep blorf' to determine this.)

However, if this program is built as follows:
    cc -o blorf blorf.c -threads

then when this program runs it will have a virtual size of about 34.5M

I've noticed that the size of the block of memory allocated affects the
behavior of the bug. For example, when the same program attempts to
allocate a block of memory that is 4000*4000 bytes in size the discrepency
between the 'threads' version and 'non-threads' version is only about 2.5M.

Has anyone else seen this ?
Is this a feature or a bug ?
If it is a bug is there an existing patch ?



Any help is appreciated.

Thanks.
Received on Wed May 29 1996 - 01:09:29 NZST

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:46 NZDT