linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #01839
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2227: Add atomic to UPnPManager, too
------------------------------------------------------------
revno: 2227
committer: eMTee <emtee11@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Wed 2010-09-01 17:07:18 +0200
message:
Add atomic to UPnPManager, too
modified:
dcpp/ConnectivityManager.h
dcpp/UPnPManager.cpp
dcpp/UPnPManager.h
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/ConnectivityManager.h'
--- dcpp/ConnectivityManager.h 2010-08-30 20:49:35 +0000
+++ dcpp/ConnectivityManager.h 2010-09-01 15:07:18 +0000
@@ -41,7 +41,6 @@
{
public:
void detectConnection();
- void log(const string& msg);
void setup(bool settingsChanged, int lastConnectionMode);
bool isRunning() { return running; }
@@ -53,6 +52,8 @@
virtual ~ConnectivityManager() throw() { }
void mappingFinished(bool success);
+ void log(const string& msg);
+
void startSocket();
void listen();
void disconnect();
=== modified file 'dcpp/UPnPManager.cpp'
--- dcpp/UPnPManager.cpp 2010-08-30 20:49:35 +0000
+++ dcpp/UPnPManager.cpp 2010-09-01 15:07:18 +0000
@@ -42,7 +42,7 @@
return false;
}
- if(Thread::safeExchange(portMapping, 1) == 1) {
+ if(portMapping.test_and_set()) {
log(_("Another UPnP port mapping attempt is in progress..."));
return false;
}
@@ -108,7 +108,7 @@
ConnectivityManager::getInstance()->mappingFinished(false);
}
- portMapping = 0;
+ portMapping.clear();
return 0;
}
=== modified file 'dcpp/UPnPManager.h'
--- dcpp/UPnPManager.h 2010-08-30 20:49:35 +0000
+++ dcpp/UPnPManager.h 2010-09-01 15:07:18 +0000
@@ -24,6 +24,8 @@
#include "Thread.h"
#include "UPnP.h"
+#include <atomic>
+
#include <boost/ptr_container/ptr_vector.hpp>
namespace dcpp {
@@ -51,9 +53,9 @@
Impls impls;
bool opened;
- volatile long portMapping;
+ atomic_flag portMapping;
- UPnPManager() : opened(false) { }
+ UPnPManager() : opened(false), portMapping(false) { }
virtual ~UPnPManager() throw() { join(); }
int run();