I know there's been some discussion and some confusion over this topic, so
now that I realized there's a mailing list with some traffic rather than the
dead SourceForge forums, I can hopefully clarify and contribute.
A long time back, pre-2004 certainly, we realized that log4cpp was extremely
broken under even rudimentary threaded conditions. I traced this problem to
two main sources:
- use of the non-threadsafe localtime function
- a broken autotools script that failed to set the proper flags on Solaris
and other platforms
One or two other small bugs were fixed around the same time in response to
some other issues I ran across, which I think have subsequently been fixed
in the trunk, just not in quite the same way, but that's fine.
At the time, I had already packaged up my own build because I could not
convince the original author to fix the libtool scripts to support Solaris.
This was discouraging to me and I simply didn't have the time to argue about
it, I needed a working tree so I built one. The threading bugs came up after
that.
(To my knowledge, the NDC class was always threadsafe (it uses
thread-local-storage), in contrast to some recent comments here. I can't
explain that, but I think the concerns there are wrong.)
Anyway, the project by that time was really dead, and I just didn't have a
choice. Now that it seems to be active again, I hope that we can get these
patches applied and get a new release out.
-- Scott
|