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