[ROOT] Shared memories & TMapFile

From: Stefano Magni (stefano.magni@mi.infn.it)
Date: Wed Apr 24 2002 - 11:21:52 MEST


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