I have an incomplete patch to fix bug 1961 (CPU profiler crashing squid 
whenever AIO or other threads are used).
So far I have a timer class whose constructor/destructor perform the 
timer setup and stats recording. That is attached.
The old profiler was done in a way which allowed live run-time snapshot 
cachemgr report to be taken without stopping any timers. I've hooked 
these classes into that reporting structure, but at present they will 
result in the snapshots only recording *finished* timers, not the 
currently active incomplete ones.
I'm thinking keeping the stack/list of timers from the old design but 
only using it to dump a list of "currently incomplete" function calls 
instead of using it to add incremental bits of timers to the report.
Does anyone have any other inspirational thoughts about how to keep 
that kind of detail peeking using these classes in a multi-threaded soup 
of code?
Amos
This archive was generated by hypermail 2.2.0 : Thu Jun 07 2012 - 12:00:04 MDT