You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ec...@apache.org on 2018/08/10 22:50:52 UTC
[geode-native] branch develop updated: GEODE-5567: Replace template
parameter of std::atomic with a known trivially-copyable type
This is an automated email from the ASF dual-hosted git repository.
echobravo pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git
The following commit(s) were added to refs/heads/develop by this push:
new e5c49fb GEODE-5567: Replace template parameter of std::atomic with a known trivially-copyable type
e5c49fb is described below
commit e5c49fb00f0cbf207a5a707274293c8439235596
Author: Blake Bender <ek...@hotmail.com>
AuthorDate: Fri Aug 10 22:50:50 2018 +0000
GEODE-5567: Replace template parameter of std::atomic with a known trivially-copyable type
Co-authored-by: Ivan Godwin <ig...@pivotal.io>
---
cppcache/include/geode/CacheStatistics.hpp | 8 ++++----
cppcache/src/CacheStatistics.cpp | 8 ++++----
cppcache/src/MapEntry.hpp | 30 ++++++++++++++++++------------
3 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/cppcache/include/geode/CacheStatistics.hpp b/cppcache/include/geode/CacheStatistics.hpp
index 8bd9911..0d8c818 100644
--- a/cppcache/include/geode/CacheStatistics.hpp
+++ b/cppcache/include/geode/CacheStatistics.hpp
@@ -49,8 +49,8 @@ class APACHE_GEODE_EXPORT CacheStatistics {
public:
typedef std::chrono::system_clock::time_point time_point;
- CacheStatistics()
- : m_lastAccessTime(time_point()), m_lastModifiedTime(time_point()){};
+ CacheStatistics()
+ : m_lastAccessTime(0), m_lastModifiedTime(0) {};
CacheStatistics(const CacheStatistics&) = delete;
virtual ~CacheStatistics() = default;
@@ -101,8 +101,8 @@ class APACHE_GEODE_EXPORT CacheStatistics {
virtual void setLastAccessedTime(time_point lat);
virtual void setLastModifiedTime(time_point lmt);
- std::atomic<time_point> m_lastAccessTime;
- std::atomic<time_point> m_lastModifiedTime;
+ std::atomic<time_point::duration::rep> m_lastAccessTime;
+ std::atomic<time_point::duration::rep> m_lastModifiedTime;
friend class LocalRegion;
};
diff --git a/cppcache/src/CacheStatistics.cpp b/cppcache/src/CacheStatistics.cpp
index 03a352a..b6a1dc3 100644
--- a/cppcache/src/CacheStatistics.cpp
+++ b/cppcache/src/CacheStatistics.cpp
@@ -22,19 +22,19 @@ namespace geode {
namespace client {
void CacheStatistics::setLastModifiedTime(time_point lmt) {
- m_lastModifiedTime = lmt;
+ m_lastModifiedTime = lmt.time_since_epoch().count();
}
void CacheStatistics::setLastAccessedTime(time_point lat) {
- m_lastAccessTime = lat;
+ m_lastAccessTime = lat.time_since_epoch().count();
}
CacheStatistics::time_point CacheStatistics::getLastModifiedTime() const {
- return m_lastModifiedTime;
+ return time_point(std::chrono::system_clock::duration(m_lastModifiedTime));
}
CacheStatistics::time_point CacheStatistics::getLastAccessedTime() const {
- return m_lastAccessTime;
+ return time_point(std::chrono::system_clock::duration(m_lastAccessTime));
}
} // namespace client
diff --git a/cppcache/src/MapEntry.hpp b/cppcache/src/MapEntry.hpp
index c6a7d44..56e4156 100644
--- a/cppcache/src/MapEntry.hpp
+++ b/cppcache/src/MapEntry.hpp
@@ -53,32 +53,38 @@ class APACHE_GEODE_EXPORT ExpEntryProperties {
typedef std::chrono::system_clock::time_point time_point;
inline ExpEntryProperties(ExpiryTaskManager* expiryTaskManager)
- : m_lastAccessTime(time_point()),
- m_lastModifiedTime(time_point()),
- m_expiryTaskId(-1),
+ :
+ m_lastAccessTime(0),
+ m_lastModifiedTime(0),
+ m_expiryTaskId(-1),
m_expiryTaskManager(expiryTaskManager) {
// The reactor always gives +ve id while scheduling.
// -1 will indicate that an expiry task has not been scheduled
// for this entry. // TODO confirm
}
- inline time_point getLastAccessTime() const { return m_lastAccessTime; }
+ inline time_point getLastAccessTime() const {
+ return time_point(std::chrono::system_clock::duration(m_lastAccessTime));
+ }
- inline time_point getLastModifiedTime() const { return m_lastModifiedTime; }
+ inline time_point getLastModifiedTime() const {
+ return time_point(std::chrono::system_clock::duration(m_lastModifiedTime));
+ }
// moved time initialization outside of constructor to avoid
// the costly gettimeofday call in MapSegment spinlock
inline void initStartTime() {
- m_lastModifiedTime = std::chrono::system_clock::now();
- m_lastAccessTime = std::chrono::system_clock::now();
+ time_point currentTime = std::chrono::system_clock::now();
+ m_lastAccessTime = currentTime.time_since_epoch().count();
+ m_lastModifiedTime = currentTime.time_since_epoch().count();
}
inline void updateLastAccessTime(time_point currTime) {
- m_lastAccessTime = currTime;
+ m_lastAccessTime = currTime.time_since_epoch().count();
}
inline void updateLastModifiedTime(time_point currTime) {
- m_lastModifiedTime = currTime;
+ m_lastModifiedTime = currTime.time_since_epoch().count();
}
inline void setExpiryTaskId(long id) { m_expiryTaskId = id; }
@@ -95,13 +101,13 @@ class APACHE_GEODE_EXPORT ExpEntryProperties {
protected:
// this constructor deliberately skips initializing any fields
inline explicit ExpEntryProperties(bool)
- : m_lastAccessTime(time_point()), m_lastModifiedTime(time_point()) {}
+ : m_lastAccessTime(0), m_lastModifiedTime(0) {}
private:
/** last access time in secs, 32bit.. */
- std::atomic<time_point> m_lastAccessTime;
+ std::atomic<time_point::duration::rep> m_lastAccessTime;
/** last modified time in secs, 32bit.. */
- std::atomic<time_point> m_lastModifiedTime;
+ std::atomic<time_point::duration::rep> m_lastModifiedTime;
/** The expiry task id for this particular entry.. **/
long m_expiryTaskId;
ExpiryTaskManager* m_expiryTaskManager;