|
Boost Users : |
From: Patrick Loney (Patrick.Loney_at_[hidden])
Date: 2008-05-16 07:07:37
What you need is something that guarantees not to move its elements
rather than something that doesn't guarantee contiguous memory. I don't
know if deque does this but you could end up with code that only works
if it's built with the right compiler...
________________________________
From: boost-users-bounces_at_[hidden]
[mailto:boost-users-bounces_at_[hidden]] On Behalf Of Igor R.
Sent: 16 May 2008 12:04
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] is read/write mutex example correct
I see... Then the whole problem could be solved just by using deque
instead of vector - since deque does't guarantee contiguous memory block
for its elements, and thus it shouldn't reallocate the storage.
> >> > The problem with this code is that you are returning a reference
> to data that might be immediately invalidated. A push_back via >
another thread can cause the referenced memory to no longer be valid.
> > Does push_back() really invalidate iterators to *previous* vector
elements?!
>
> Yes: it might have to allocate a new chunk of memory for the vector,
in which
> case it will have to move all the existing elements to the new memory,
and
> free the old one.
>
> Anthony
________________________________
Get news, entertainment and everything you care about at Live.com. Check
it out! <http://www.live.com/getstarted.aspx%20>
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
******************************************************************************
"This message and any attachments are solely for the intended recipient and may contain confidential and privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments. Thank you."
Interactive Transaction Solutions Ltd (2473364 England)
Registered Office:
Systems House,
Station Approach
Emsworth PO10 7PW
**********************************************************************
Ce message électronique contient des informations confidentielles à l'usage unique des destinataires indiqués, personnes physiques ou morales. Si vous n'êtes pas le destinataire voulu, toute divulgation, copie, ou diffusion ou toute autre utilisation de ces informations, est interdite. Si vous avez reçu ce message électronique par erreur, nous vous remercions d'en avertir son expéditeur immédiatement par email et de détruire ce message ainsi que les éléments attachés.
Interactive transaction Solutions SAS- France (RCS Pontoise : 489 397 877)
Siège social :
Parc Saint Christophe,
10, Avenue de lEntreprise
95865 Cergy-Pontoise Cedex
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net