commit 452a7a500c78aeb04f5a2695a368cfdc1efd4c0d
Author: Richard Heck <[email protected]>
Date: Sun Oct 26 12:53:41 2014 -0400
Make static variables used in DocBook output thread-safe.
diff --git a/src/sgml.cpp b/src/sgml.cpp
index fdd0ed7..125ef61 100644
--- a/src/sgml.cpp
+++ b/src/sgml.cpp
@@ -26,6 +26,7 @@
#include "support/docstream.h"
#include "support/lstrings.h"
#include "support/textutils.h"
+#include "support/ThreadStorage.h"
#include <map>
@@ -135,10 +136,11 @@ docstring sgml::cleanID(Buffer const & buf, OutputParams
const & runparams,
docstring content;
- // FIXME THREAD
typedef map<docstring, docstring> MangledMap;
- static MangledMap mangledNames;
- static int mangleID = 1;
+ static ThreadStorage<MangledMap> tMangledNames;
+ MangledMap & mangledNames = *tMangledNames;
+ static ThreadStorage<int> tMangleID;
+ int & mangleID = *tMangleID;
MangledMap::const_iterator const known = mangledNames.find(orig);
if (known != mangledNames.end())