
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: Shmem.2005-03-06.tar.bz2 //library Shmem.2005-03-06-doc-1.tar.bz2 //doc1 Shmem.2005-03-06-doc-2.tar.bz2 //doc2 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, Ion