Re: Thread deadlock misery
- From: Tamas Demjen <tdemjen@xxxxxxxxx>
- Date: Tue, 13 Mar 2007 10:37:29 -0700
Ben Voigt wrote:
std::vector< char > buffer( pATFP->TFP.size );
WSABUF wsaBuf = { pATFP->TFP.size, &buffer.front() };
I don't know if that's guaranteed to be contiguous memory
Stroustrup suggests that it is contiguous. Interesting discussion here:
http://www.velocityreviews.com/forums/t281876-is-stdvector-contiguous.html
The original standard didn't explicitly state contiguity, but it has been corrected since then, and now it is an explicit guarantee. Besides, there is no known implementation of vector where memory is not contiguous.
, better to use:
std::auto_ptr buffer = new char[TFP.size];
This works with every compiler that I tried, but strictly speaking, it's not correct. auto_ptr calls delete, not delete [], and therefore it is not guaranteed to work. I personally use boost::scoped_array, it's extremely lightweight and is guaranteed to be correct:
boost::scoped_ptr<char> buffer(new char[size]);
I think its c'tor is explicit, you can't use assignment there.
Tom
.
- Follow-Ups:
- Re: Thread deadlock misery
- From: Ben Voigt
- Re: Thread deadlock misery
- References:
- Thread deadlock misery
- From: PaulH
- Re: Thread deadlock misery
- From: Doug Harrison [MVP]
- Re: Thread deadlock misery
- From: PaulH
- Re: Thread deadlock misery
- From: Ben Voigt
- Thread deadlock misery
- Prev by Date: Re: Function pointers with dynamic link
- Next by Date: Re: Thread deadlock misery
- Previous by thread: Re: Thread deadlock misery
- Next by thread: Re: Thread deadlock misery
- Index(es):
Relevant Pages
|
Loading