projects
/
shibboleth
/
cpp-xmltooling.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
https://issues.shibboleth.net/jira/browse/CPPXT-83
[shibboleth/cpp-xmltooling.git]
/
xmltooling
/
internal.h
diff --git
a/xmltooling/internal.h
b/xmltooling/internal.h
index
d441ad4
..
bf879f3
100644
(file)
--- a/
xmltooling/internal.h
+++ b/
xmltooling/internal.h
@@
-28,6
+28,7
@@
#ifdef WIN32
# define _CRT_SECURE_NO_DEPRECATE 1
# define _CRT_NONSTDC_NO_DEPRECATE 1
#ifdef WIN32
# define _CRT_SECURE_NO_DEPRECATE 1
# define _CRT_NONSTDC_NO_DEPRECATE 1
+# define _SCL_SECURE_NO_WARNINGS 1
#endif
// Export public APIs.
#endif
// Export public APIs.
@@
-44,7
+45,10
@@
#include "XMLToolingConfig.h"
#include "util/ParserPool.h"
#include "XMLToolingConfig.h"
#include "util/ParserPool.h"
+#include <map>
+#include <string>
#include <vector>
#include <vector>
+
#ifndef XMLTOOLING_NO_XMLSEC
#include <xsec/framework/XSECProvider.hpp>
#endif
#ifndef XMLTOOLING_NO_XMLSEC
#include <xsec/framework/XSECProvider.hpp>
#endif
@@
-95,6
+99,9
@@
namespace xmltooling {
Lockable* lock();
void unlock();
Lockable* lock();
void unlock();
+ // named mutexes to limit lock scope
+ Mutex& getNamedMutex(const char* name);
+
// configuration
bool load_library(const char* path, void* context=nullptr);
bool log_config(const char* config=nullptr);
// configuration
bool load_library(const char* path, void* context=nullptr);
bool log_config(const char* config=nullptr);
@@
-125,7
+132,8
@@
namespace xmltooling {
private:
int m_initCount;
private:
int m_initCount;
- Mutex* m_lock;
+ std::auto_ptr<Mutex> m_lock;
+ std::map<std::string,Mutex*> m_namedLocks;
std::vector<void*> m_libhandles;
ParserPool* m_parserPool;
ParserPool* m_validatingPool;
std::vector<void*> m_libhandles;
ParserPool* m_parserPool;
ParserPool* m_validatingPool;