From: ION_G_M (ION_G_M_at_[hidden])
Date: 2005-03-09 03:03:04
Hi James and all shmem users,
Sorry for uploading to boost files but I had some problems with file
size, so I uploaded to boost files instead. In boost vault you will
fine a new folder (Shmem) with 3 new files:
Write now I am writing documentation with a text editor and it's just
a pain. For this version, I've discovered the CDATA usage so I don't
have to manually escape XML characters (<, >, &). I will have a look at
Quickbook. Is there any way to "insert" a cpp file directly on the code
using BoostBook/QuickBook? That would help me a lot to mantain example
code without errors.
I've also seen in unordered associative containers documentation that
colored code is used and I'm very interested in that, but I don't know
if that is provided by BoostBook or was created with an external tool.
Regarding new version, there are some name changes, so please, forgive
me. I don't plan any further name changes except after a boost review.
I've tested it in Windows XP using visual 7.1 mainly and Linux 2.6
kernel (Suse 9.2) using gcc 3.4.1. But it's possible to be errors in
some linux tests.
For this version I don't have any atomic swap/inc/test function and I
don't plan to have it, because library has grown so much that I prefer
to polish a bit this. I agree that those functions would be very useful
to implement lock-free allocators and structures.
If win32 shared_mutex/shared_condition seem very rudimentary
test/yield functions but I've not found any pthread-like process shared
mutex/condition implementation in any place (the latest time I checked,
cygwin, pthread-win32, Windows Unix Services, didn't support that) so I
had to make this hack to go on.
When I propose a review process, surely synchronization objects should
be included/adapted to boost threads, but currently boost::thread's
elements don't allow single threaded builds, so I can't use
boost::xtime and scoped_locks in shmem when synchronizing two single
threaded processes. That's why I've copied those classes in my library
changing their name.
One last thing: shared memory creation/destruction is not very
portable, because I can't find a common implementation that suits
win32/posix shared memory model (I mean shm_unlink behaviour). I've not
found any valid implementation except using System V shared memory to
emulate Win32 shared memory, but I want to use posix functions if
available. Has anyone solved this before?
Well, thank you for your comments and feel free to write if any
problem is found. Regards,
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk