Boost logo

Boost Users :

Subject: Re: [Boost-users] [Interprocess] Using shared Memory with different compilers (msvc, mingw)
From: BaDBuTz (badbutz_at_[hidden])
Date: 2009-10-29 04:19:21


hi Steven,

I'll change the std::string to boost::interprocess::basic_string::string
or basic_string.

What does SBO stand for? I searched the web but couldn't find anything.

Can I use interprocess with different compilers, if I store the elements
of the SyncObject(U32 values, mutexes, strings) directly in the Shmem
without wrapping them into the SyncObject container?

example:
  pMtxReadWrite = segment.construct<interprocess_mutex>(id.c_str() +
"_mtx");
  plocAddrSp0Range = segment.construct<U32>(id.c_str() +
"_locAddrSp0Range");

then I use the pointers now as if they are in the SyncObject before.

Best regards

Martin

Steven Watanabe schrieb:
> AMDG
>
> BaDBuTz wrote:
>> My library uses boost::interprocess' Shared Memory and has to be
>> delivered with msvc(7.1) and mingw compiled versions.
>>
>> Every instance of the that library opens a connection to the Shared
>> Memory "sharedMemoryMapTest" and communicates via instances of the
>> class "SyncObject".
>>
>> In my test program ProcessA opens the shared memory, instanciates a
>> SynObject with the identifyer String "id1". ProcessB connects to the
>> same SyncObject and synchronizes with ProcessA.
>> If ProcessA and ProcessB are both compiled with the same compiler it
>> works fine. If one process is compiled with mscv and the other is
>> compiled with mingw it fails. (mscv = ProcessA, ProcessB = mingw -> I
>> read my Windows environment variables instead of "id1")
>>
>>
>> Did I make a mistake in my implementation, or is it simply not
>> possible to access the same Shmem with different compiled versions?
>>
>
> You can't use std::string in shared memory. It probably works
> in this case because of SBO. Regardless, you can't safely use
> Interprocess
> with different compilers because the ABI can be different depending
> on the compiler.
>
> In Christ,
> Steven Watanabe
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net