Hi All
Am facing a lot of issue while using interprocess features inside my class file. I am pasting my class file below:
class MyClass{
Ref* ref;
public:
MyClass();
void initializeBuffers();
void processMessage();
~MyClass();
};
void MyClass::createBuffer() {
shared_memory_object::remove("test");
shared_memory_object shm(open_or_create, infoBufferName, read_write);
shm.truncate(sizeof(ServerDetails));
mapped_region region(shm, read_write);
void* addr = region.get_address();
ref=new (addr) Ref;
ref->value=50;
}
void MyClass::processMessage() {
printf("%d",ref->value); //I get a segmentation fault in here.
}
int main()
{
MyClass c();
c.createBuffer();
c.processMessage();
}
When I execute this I am getting segmentation exception.
If I merge processMessage and createBuffer under same function it starts working. But if in any case I change the function signature to have an argument again this issue starts.
Am not sure if I am doing some thing wrong above. Please do help me on this.
Error I get is:
Program received signal SIGSEGV, Segmentation fault.
0x77d41df8 in ntdll!RtlGetCompressionWorkSpaceSize ()
from C:\Windows\system32\ntdll.dll
--
Achu