[libxml++/libxml++-2.42: 1/3] Parser: Replace (deprecated) Glib::Threads::Mutex with std::mutex.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxml++/libxml++-2.42: 1/3] Parser: Replace (deprecated) Glib::Threads::Mutex with std::mutex.
- Date: Tue, 20 Jun 2017 19:53:59 +0000 (UTC)
commit 0f5aa541287723d8fd4b67c72a894e790203f498
Author: Murray Cumming <murrayc murrayc com>
Date: Tue Jun 20 21:46:12 2017 +0200
Parser: Replace (deprecated) Glib::Threads::Mutex with std::mutex.
libxml++/parsers/parser.cc | 29 +++++++++++++----------------
1 files changed, 13 insertions(+), 16 deletions(-)
---
diff --git a/libxml++/parsers/parser.cc b/libxml++/parsers/parser.cc
index b96fe90..6bd4c45 100644
--- a/libxml++/parsers/parser.cc
+++ b/libxml++/parsers/parser.cc
@@ -4,15 +4,12 @@
* included with libxml++ as the file COPYING.
*/
-// Include glibmm/threads.h first. It must be the first file to include glib.h,
-// because it temporarily undefines G_DISABLE_DEPRECATED while it includes glib.h.
-#include <glibmm/threads.h> // For Glib::Threads::Mutex. Needed until the next API/ABI break.
-
#include "libxml++/exceptions/wrapped_exception.h"
#include "libxml++/parsers/parser.h"
#include <libxml/parser.h>
+#include <mutex>
#include <memory> //For unique_ptr.
#include <map>
@@ -42,18 +39,18 @@ struct ExtraParserData
std::map<const xmlpp::Parser*, ExtraParserData> extra_parser_data;
// Different Parser instances may run in different threads.
// Accesses to extra_parser_data must be thread-safe.
-Glib::Threads::Mutex extra_parser_data_mutex;
+std::mutex extra_parser_data_mutex;
void on_parser_error(const xmlpp::Parser* parser, const Glib::ustring& message)
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
//Throw an exception later when the whole message has been received:
extra_parser_data[parser].parser_error_ += message;
}
void on_parser_warning(const xmlpp::Parser* parser, const Glib::ustring& message)
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
//Throw an exception later when the whole message has been received:
extra_parser_data[parser].parser_warning_ += message;
}
@@ -71,7 +68,7 @@ Parser::~Parser()
{
release_underlying();
delete exception_;
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
extra_parser_data.erase(this);
}
@@ -97,46 +94,46 @@ bool Parser::get_substitute_entities() const
void Parser::set_throw_messages(bool val)
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
extra_parser_data[this].throw_parser_messages_ = val;
extra_parser_data[this].throw_validity_messages_ = val;
}
bool Parser::get_throw_messages() const
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
return extra_parser_data[this].throw_parser_messages_;
}
void Parser::set_include_default_attributes(bool val)
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
extra_parser_data[this].include_default_attributes_ = val;
}
bool Parser::get_include_default_attributes()
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
return extra_parser_data[this].include_default_attributes_;
}
void Parser::set_parser_options(int set_options, int clear_options)
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
extra_parser_data[this].set_options_ = set_options;
extra_parser_data[this].clear_options_ = clear_options;
}
void Parser::get_parser_options(int& set_options, int& clear_options)
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
set_options = extra_parser_data[this].set_options_;
clear_options = extra_parser_data[this].clear_options_;
}
void Parser::initialize_context()
{
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::unique_lock<std::mutex> lock(extra_parser_data_mutex);
//Clear these temporary buffers:
extra_parser_data[this].parser_error_.erase();
@@ -232,7 +229,7 @@ void Parser::check_for_validity_messages() // Also checks parser messages
bool parser_msg = false;
bool validity_msg = false;
- Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+ std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
if (!extra_parser_data[this].parser_error_.empty())
{
parser_msg = true;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]