IDL_IDLBridge and SHMMAP - shared memory not found [message #79541] |
Tue, 06 March 2012 01:41 |
Percy Pugwash
Messages: 12 Registered: January 2012
|
Junior Member |
|
|
I'm trying to do some processing in "in the background" using the IDL_IDLBridge object. I want to avoid making unnecessary copies of all the data, and also gain the speed benefits mentioned here: https://groups.google.com/d/topic/comp.lang.idl-pvwave/fRXH- lDbdKc/discussion
So, I am using the shmmap and shmvar functionality to share the data.
shmmap,size=size(image),get_name=shmname
var = shmvar(shmname)
var[0,0] = image
The IDL_IDLBridge object seems to be working OK
bridge->setvar,'nlevels',nlevels
bridge->setvar,'shmname',shmname
bridge->execute,'makePyramid,nlevels,shmname=shmname'
The problem seems to be that the shmmapped memory does not seem to be visible from the child IDL process. When I get run the execute method of bridge as above, I get the following error:
IDL_IDLBRIDGE Error: SHMVAR: Shared Memory Segment not found: IDL_SHM_700_0
However, I can see using help,/shared_memory (while the IDE is paused in debug mode) that the sought-after shared memory segment does indeed exist.
IDL> help,/shared_memory
IDL_SHM_700_0 BYTE = <WindowsAnonymous(IDL_SHM_700_0), Offset(0), Refcnt(0)> Array[5120, 5696]
Why can't the child process see the shared memory?
I am using 64-bit IDL on Windows XP.
P
|
|
|