On-line applications, multithread or "qusi" multithread processing. Questions and call for discussion.

From: Anton Fokin (kosu_fokin@garbo.lucas.lu.se)
Date: Mon Mar 08 1999 - 14:06:17 MET


Hi rooters,

We have decided to use root for a (general) on-line monitoring/sorting/daq
system at TSL (Uppsala, Sweden) and particularly for the CHICSi project.
Well, it's all about multithread support in root. As soon as one starts
thinking about an on-line monitor program, one concludes that at least two
threads which share common resources (event/histogram file/buffer, etc) are
needed. I.e. one thread which listens on say UDP port and writes incoming
events into a buffer (this one should have the highest priority to catch
all events), and the second thread which processes the event buffer and
makes histogramming/visualization, etc. As we know from previous discussion
in roottalk this can be organized in two ways:

1. "real" Multithread (Java-like)
2. "quasi" Multithread, i.e. via simulating threads with use of TTimer.

Well, thirst at all, I could not find any info on multithread support in
root, although Rene claims that TThread is implemented and there is an
example that fills two histograms using threads. So the question #1 is:
where one can find such info for beginners. Question #2 : although Valery
remarked that rather any on-line problem can be solved with TTimer object,
I do not think it is a good idea since we live in the "real" thread world
where Java gives an example of making things easy. So the question #2 is:
what strategy should one choose for writing on-line applications. The
question #3 is not really a question but rather a call for discussion. Rene
asked people who implement root for on-line processing to send info on how
it is done and to make the info publicly available. I think it is time to
rise this point up aging and make a kind of forum for on-line rooters.

Regards,

Dr. Anton Fokin

Division of Cosmic and Subatomic Physics
Lund University
Sweden



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:30 MET