From 3a8725012b391fa9d1e47dd318f2ebaf2a6d06d7 Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Tue, 1 Jul 2014 16:55:43 +0000 Subject: QPID-5865: Be more robust in face of system clock being changed: - Separate Wall clock time uses from other time * (assumed that any time with respect to the epoch is wallclock) - For Posix use CLOCK_MONOTONIC for all non wall clock purposes so that changing system time doesn't affect internal timekeeping - For Windows kept the same time keeping scheme. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1607140 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qmf/AgentSession.cpp | 12 ++++++------ cpp/src/qmf/ConsoleSession.cpp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'cpp/src/qmf') diff --git a/cpp/src/qmf/AgentSession.cpp b/cpp/src/qmf/AgentSession.cpp index 1afdc14021..4605285448 100644 --- a/cpp/src/qmf/AgentSession.cpp +++ b/cpp/src/qmf/AgentSession.cpp @@ -76,7 +76,7 @@ AgentSessionImpl::AgentSessionImpl(Connection& c, const string& options) : externalStorage(false), autoAllowQueries(true), autoAllowMethods(true), maxSubscriptions(64), minSubInterval(3000), subLifetime(300), publicEvents(true), listenOnDirect(true), strictSecurity(false), maxThreadWaitTime(5), - schemaUpdateTime(uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now()))) + schemaUpdateTime(uint64_t(qpid::sys::Duration::FromEpoch())) { // // Set Agent Capability Level @@ -288,7 +288,7 @@ void AgentSessionImpl::registerSchema(Schema& schema) // // Get the news out at the next periodic interval that there is new schema information. // - schemaUpdateTime = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + schemaUpdateTime = uint64_t(qpid::sys::Duration::FromEpoch()); forceHeartbeat = true; } @@ -509,7 +509,7 @@ void AgentSessionImpl::raiseEvent(const Data& data, int severity) Variant::List list; Variant::Map dataAsMap(DataImplAccess::get(data).asMap()); dataAsMap["_severity"] = severity; - dataAsMap["_timestamp"] = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + dataAsMap["_timestamp"] = uint64_t(qpid::sys::Duration::FromEpoch()); list.push_back(dataAsMap); encode(list, msg); topicSender.send(msg); @@ -591,7 +591,7 @@ void AgentSessionImpl::handleLocateRequest(const Variant::List& predicate, const headers[protocol::HEADER_KEY_APP_ID] = protocol::HEADER_APP_ID_QMF; map["_values"] = attributes; - map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration::FromEpoch()); map["_values"].asMap()[protocol::AGENT_ATTR_HEARTBEAT_INTERVAL] = interval; map["_values"].asMap()[protocol::AGENT_ATTR_EPOCH] = bootSequence; map["_values"].asMap()[protocol::AGENT_ATTR_SCHEMA_UPDATED_TIMESTAMP] = schemaUpdateTime; @@ -883,7 +883,7 @@ void AgentSessionImpl::sendHeartbeat() msg.setSubject(address.str()); map["_values"] = attributes; - map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration::FromEpoch()); map["_values"].asMap()[protocol::AGENT_ATTR_HEARTBEAT_INTERVAL] = interval; map["_values"].asMap()[protocol::AGENT_ATTR_EPOCH] = bootSequence; map["_values"].asMap()[protocol::AGENT_ATTR_SCHEMA_UPDATED_TIMESTAMP] = schemaUpdateTime; @@ -992,7 +992,7 @@ void AgentSessionImpl::run() try { while (!threadCanceled) { - periodicProcessing((uint64_t) qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now()) / qpid::sys::TIME_SEC); + periodicProcessing((uint64_t) qpid::sys::Duration::FromEpoch() / qpid::sys::TIME_SEC); Receiver rx; bool valid = session.nextReceiver(rx, Duration::SECOND * maxThreadWaitTime); diff --git a/cpp/src/qmf/ConsoleSession.cpp b/cpp/src/qmf/ConsoleSession.cpp index 2dfc894c58..c74d4de8db 100644 --- a/cpp/src/qmf/ConsoleSession.cpp +++ b/cpp/src/qmf/ConsoleSession.cpp @@ -645,7 +645,7 @@ void ConsoleSessionImpl::run() try { while (!threadCanceled) { - periodicProcessing((uint64_t) qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now()) / + periodicProcessing((uint64_t) qpid::sys::Duration::FromEpoch() / qpid::sys::TIME_SEC); Receiver rx; -- cgit v1.2.1