|
Boost : |
From: dherring_at_[hidden]
Date: 2008-07-09 12:42:34
On Wed, 9 Jul 2008, Ion Gaztañaga wrote:
> Sergei Politov wrote:
>> I have found the following problem with message_queue on win32 (MSVC 2008
>> + Windows Vista).
>
> Sadly, Interproces message queues are built above interprocess_mutex and
> interprocess_condition and they don't support process termination. It's
> not a bug, because they never tried to be termination-safe, but if you
> have an idea on how to do that without kernel support, I'm glad if you
> could help. In windows shared memory is emulated with mapped files, so
> it's possible that the mapped file will get corrupted if you kill processes.
If you can trust an atomic compare-and-swap to work in shared memory,
there are lock-free queue algorithms... e.g. the Michael/Scott algorithm.
- Daniel
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk