>From flood_report_relative_times.c (SVN):
/* FIXME: this call may need to be in a critical section */
#if APR_HAS_THREADS
apr_file_printf(local_stdout, "%s %ld %s\n", buf,
apr_os_thread_current(), req->uri);
#else
apr_file_printf(local_stdout, "%s %d %s\n", buf, getpid(), req->uri);
#endif
The comment is right - it does need to be in a critical section. For
the case of multiple processes, flock can be used. However, for the
case of a single process, this doesn't work, and a mutex would be in
order. What would be the correct way to go about organizing such a
per-process mutex? Note that apr_file_printf indirectly calls
apr_file_write, which is thread-safe - however, it call it multiple
times, which can (and does) lead to interlacing in output.
--
Man is the only animal that laughs and weeps, for he is the only
animal that is struck with the difference between what things are and
what they ought to be.
- William Hazlitt
Ohad Lutzky