What’s the big deal?
…after all, we have enjoyed multi-processing with shared memory segments in PAW for the past 10 years!
PAW/Hbook histograms were “flat” memory structures. Give a process a pointer to it, and it can understand what’s in there.
Not so with Objects. Imbedded in the data structure are the pointers to the class’ member functions (the “Vref table”).
Problem is, function pointer values mean something only within the same process context - for another process they are just numbers.
“Shared memory in ROOT” works around this problem by copying the object’s data and re-instantiating a new object in the other process, with high overhead costs and only “on demand”.
The server process has to actively update the shared copy or you get stale data.
Still, hadn’t we managed to get the threads, this would have been our fallback position.