|
Boost : |
From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2007-07-13 15:44:03
Wilbur Lang wrote:
> Hi,
>
> Because of network problem, what I had is a snapshot
> of CVS-HEAD-07-06-29-0909. If this bug is corrected/reported before,
> please ignore.
>
> in the file /boost/interprocess/mapped_region.hpp line 467, followed is
> a snip
> [...]
You are right. If the mapping address is not the desired one, the
cleanup is wrong. Your solution, moving the following lines
> ==============================================
> //Check for fixed mapping error
> if(address && (m_base != (void*)address)){
> error_info err = system_error_code();
> this->priv_close(); // bug here
> throw interprocess_exception(err);
> }
> ==============================================
to the end of the function should fix it (since the object would be in
an stable state)
> I think it affect windows version too (same file at line 309).
In windows, if the suggested address can't be exactly achieved, the
mapping fails, so you don't need to check the mapping address.
I've already changed HEAD. Thanks for the report,
Ion
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk