------- Comment #6 from kargl at gcc dot gnu dot org 2007-12-20 19:39 ------- (In reply to comment #5) > > I think gfortran will need to handle it similar to how random_seed is done. > > Using a mutex, yes, that's what I thought as well. Btw, CPU_TIME gives values > per process and does not bother with threads. DTIME probably wants to do the > same?
I thought about this a little more. Because dtime() is provided for backwards compatibility with g77 and g77 did not (to my knowledge) support any kind of threading model, I would make it work under the assumption of a nonthreaded process. In the documentation, simply note that the behavior of dtime() is undefined (or processor-dependent) when used in a threaded process. Otherwise, I think you're going to run into strange race conditions and oddly reported timings. > While at it, a common time aquisition function for all three, CPU_TIME, DTIME > and ETIME, would be useful. Currently, ETIME has an implementation separate > from CPU_TIME -- but both use getrusage(). It's been a long time since I looked at the code. But, yes, I would think one would want a single aquisition function with the intrinsics being simple wrappers. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34533