Ticket #4251 (closed Bugs: fixed)
Interprocess failed to communicate in OS X 10.5.8 Leopard under 64 bit mode
|Reported by:||Chih-Yao Hsieh <josephsieh@…>||Owned by:||igaztanaga|
This issue only exists explicitly for OSX leopard 64 bits application trying to use IPC.
Windows 32/64 bits, XP, Vista, Win 7 has no issue and OSX 10.4: 32 bits, 10.5: 32 bits, 10.6: 32/64 bits all works fine.
The issue is due to "inline void get_bootstamp(std::string &s, bool add = false)" function.
When a 64 bits host application create the shared_memory_object, there will be a folder somewhat like "33FABFC2B8FACA0133FABFC2B8FACA01" being created in the boost_interprocess directory. When the 64 bits client application trying to open the created shared_memory_object, the "get_bootstamp(std::string &s, bool add = false)" function will return "33FABFC2B8FACA010000000000000000", therefore, the client will always failed to find the shared memory object.