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'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.you must preserve pointers / memory segment offsets.
and that means using MMAP_FIXED.
if anyone has any better ideas, love to hear them.
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/
