From ce2b29af43b4624e053377ef00c5a7e2b80c08b7 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Thu, 19 Apr 2012 20:17:47 +0200 Subject: Clock instance removed from surveyor_t SURVEYOR socket now uses clock instance from socket_base_t for measuring survey timeout. This allows for better performance in tight xs_recv() loops. Signed-off-by: Martin Sustrik --- src/socket_base.cpp | 4 ++++ src/socket_base.hpp | 3 +++ src/surveyor.cpp | 4 ++-- src/surveyor.hpp | 4 ---- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/socket_base.cpp b/src/socket_base.cpp index 39881d5..3e57c28 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -933,3 +933,7 @@ int xs::socket_base_t::sndtimeo () return options.sndtimeo; } +uint64_t xs::socket_base_t::now_ms () +{ + return clock.now_ms (); +} diff --git a/src/socket_base.hpp b/src/socket_base.hpp index 0f7dca8..54a5f0a 100644 --- a/src/socket_base.hpp +++ b/src/socket_base.hpp @@ -133,6 +133,9 @@ namespace xs // Delay actual destruction of the socket. void process_destroy (); + // Measure time in efficient manner. + uint64_t now_ms (); + private: // Initialise the object. This function is separate from constructor diff --git a/src/surveyor.cpp b/src/surveyor.cpp index b76128b..2208146 100644 --- a/src/surveyor.cpp +++ b/src/surveyor.cpp @@ -75,7 +75,7 @@ int xs::surveyor_t::xsend (msg_t *msg_, int flags_) if (!options.survey_timeout) timeout = -1; else - timeout = clock.now_ms () + options.survey_timeout; + timeout = now_ms () + options.survey_timeout; return 0; } @@ -132,7 +132,7 @@ bool xs::surveyor_t::xhas_out () int xs::surveyor_t::rcvtimeo () { - int t = timeout - clock.now_ms (); + int t = timeout - now_ms (); if (t < 0) return options.rcvtimeo; if (options.rcvtimeo < 0) diff --git a/src/surveyor.hpp b/src/surveyor.hpp index a77af49..e79dab0 100644 --- a/src/surveyor.hpp +++ b/src/surveyor.hpp @@ -23,7 +23,6 @@ #include "xsurveyor.hpp" #include "stdint.hpp" -#include "clock.hpp" namespace xs { @@ -58,9 +57,6 @@ namespace xs // The time instant when the current survey expires. uint64_t timeout; - // Provides a way to measure time quickly. - clock_t clock; - surveyor_t (const surveyor_t&); const surveyor_t &operator = (const surveyor_t&); }; -- cgit v1.2.3