On Tue, Jan 11, 2011 at 8:03 AM, Amos Jeffries <squ...@treenet.co.nz> wrote: > The profiler aufs assertions are caused by the profiler not being thread > safe but attempting to account operations inside each of the AIO threads. > Lack of thread safety is due to the stack the profiler maintains of what > states are currently being counted. > > I don't believe we should be maintaining such a stack. Instead I think we > should leverage the existing system stack by having the PROF_start(X) macro > create a counter object in the local scope being counted. When the local > scope exists for any reason the system stack object will be destructed and > the destructor can accumulate the counters back into the global data.
+1. I like this. -- /kinkie