Luke Kenneth Casson Leighton wrote:

the implementation has, if you to are pass over data
structures between programs, presumably in exactly
the same way that those DB apps are doing,

I don't think DBMSs pass around pointers.

you must
preserve pointers / memory segment offsets.

and that means using MMAP_FIXED.

if anyone has any better ideas, love to hear them.

You're passing around structured defined in IDL, right? Therefore you know exactly where the pointers are. I assume pointers are the only bits that will cause problems if the segment isn't mapped to the same addresses in both apps.

If all of the above is correct, and MMAP_FIXED fails (as it sometimes will) or isn't available (as it often isn't), you can simply fixup the pointers by adding an offset -- the difference between the addresses of the mapped area in the two apps. That would still be faster than a memcpy (except if you're passing arrays of poitners).


-- Brane Čibej <[EMAIL PROTECTED]> http://www.xbc.nu/brane/





Reply via email to