git-svn-id: svn://db.shs.com.ru/pip@486 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2017-04-28 11:35:52 +00:00
parent 66107648df
commit 2506f1df70

View File

@@ -85,7 +85,7 @@ PISharedMemory::PISharedMemory(const PIString & shm_name, int size, PIIODevice::
bool PISharedMemory::openDevice() { bool PISharedMemory::openDevice() {
close(); close();
piCoutObj << "try open" << path() << dsize; //piCoutObj << "try open" << path() << dsize;
#ifdef WINDOWS #ifdef WINDOWS
PRIVATE->name = ("PIP_SHM_" + path()).toByteArray(); PRIVATE->name = ("PIP_SHM_" + path()).toByteArray();
PRIVATE->name.push_back(0); PRIVATE->name.push_back(0);
@@ -96,14 +96,14 @@ bool PISharedMemory::openDevice() {
PRIVATE->map = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, (DWORD)dsize, nm); PRIVATE->map = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, (DWORD)dsize, nm);
//piCoutObj << "create map =" << ullong(PRIVATE->map); //piCoutObj << "create map =" << ullong(PRIVATE->map);
if (!PRIVATE->map) { if (!PRIVATE->map) {
piCoutObj << path() << dsize << "CreateFileMapping error," << errorString(); piCoutObj << "CreateFileMapping error," << errorString();
return false; return false;
} }
} }
PRIVATE->data = MapViewOfFile(PRIVATE->map, FILE_MAP_ALL_ACCESS, 0, 0, dsize); PRIVATE->data = MapViewOfFile(PRIVATE->map, FILE_MAP_ALL_ACCESS, 0, 0, dsize);
if (!PRIVATE->data) { if (!PRIVATE->data) {
piCoutObj << path() << dsize << "MapViewOfFile error," << errorString();
CloseHandle(PRIVATE->map); CloseHandle(PRIVATE->map);
piCoutObj << "MapViewOfFile error," << errorString();
return false; return false;
} }
//piCout << PRIVATE->map << PRIVATE->data; //piCout << PRIVATE->map << PRIVATE->data;
@@ -118,7 +118,7 @@ bool PISharedMemory::openDevice() {
fd = shm_open((const char *)PRIVATE->name.data(), O_RDWR | O_CREAT, 0777); fd = shm_open((const char *)PRIVATE->name.data(), O_RDWR | O_CREAT, 0777);
//piCoutObj << "try create" << PICoutManipulators::Hex << (m | O_CREAT) << fd; //piCoutObj << "try create" << PICoutManipulators::Hex << (m | O_CREAT) << fd;
if (fd < 0) { if (fd < 0) {
//piCoutObj << "shm_open error," << errorString(); piCoutObj << "shm_open error," << errorString();
return false; return false;
} }
PRIVATE->owner = true; PRIVATE->owner = true;