Re: [ROOT] Shared memories & TMapFile

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Apr 24 2002 - 15:59:09 MEST


Hi Stefano & Dario,

Did you follow carefully the instructions given at:
http://root.cern.ch/root/htmldoc/TMapFile.html#TMapFile:SetMapAddress

for SetMapAddress and MaptoAddress ?

Rene Brun

On 24 Apr 2002, Stefano Magni wrote:

> Dear Rene & C,
> We are developing a DAQ system that makes heavy use of IPC calls to
> create and manage shared memories and message queues.
> In the same time we would like to use the facilities provided by root to
> share histograms among cooperating processes via TMapFile.
> We run into a problem:
> if we just invoke TMapFile::Create with default values, our producer
> process crashes at the firt call of the fill method of a histogram in
> the shared map file.
> We noticed that the base address, shown by TMapFile, overlaps with one
> of our shared memories.
> We therefore decided (arbitrarily?) to force TMapFile to a fixed base
> address using TMapFile::SetMapAddress specifying the last location
> allocated to our shared memory segment. In this configuration everything
> seems working properly. 
> Since the basic mechanism to allocate shared memory by means of IPC
> calls does not provide a method to specify it's phyical location at
> specified addresses, we suspect that this solution, albeit fixing our
> problem, is not of a sufficiently general nature. 
> With the call to SetMapAddress we apparently fixed the problem of the
> overlap with just one of our shared memories. How can we be sure to
> prevent a clash with one of the other shared memories and/or the message
> queue?
> Does anyone have a suggestion about the proper way to handle the mix of
> TMapFile and ICP calls?
> 
> 				Stefano Magni & Dario Menasce
> 
> -- 
> **********************************************
> Dr. Stefano Magni
> I.N.F.N Via Celoria 16, Milano
> tel : 0250317738
> **********************************************
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:51 MET