[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Strange behavior with glibc 2.3.1, malloc and threads in Sid



[snip]
> >
> >   logmsg("Putting into queue %p slot %d", reqq, reqq_write_idx);
> >
> >   reqq[reqq_write_idx++] = req;
> >   reqq_write_idx %= reqq_size;
> >   logmsg("Inserted req == %p; nto == %d; to == %p",
> >          reqq[reqq_read_idx], reqq[reqq_read_idx]->nto,
> >          reqq[reqq_read_idx]->to);
> >
> Not sure if that is the problem, but you are incrementing the index and thus 
> the second logmsg()-call is logging the content of a free slot in your queue.
> : )
Heh, yeah, you're right :) - but I checked the situation in gdb, it
confirmed the problem (and a segfault didn't deny it either ;-))

> > Is my understanding that the
> > malloc'ed memory area can be shared between threads in a process correct?
> Yes, threads share a common address-space (at least here they do and in every 
> system I have come across), the consumer-producer design is typical in 
> threaded apps and relies on that.
So was my understanding, but I had a moment of doubt :-)

regards,
marek

Attachment: pgpducB31SmV5.pgp
Description: PGP signature


Reply to: