You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2012/11/14 21:12:17 UTC
svn commit: r1409363 - in /qpid/proton/trunk/proton-c:
include/proton/driver.h src/driver.c src/messenger.c
Author: kgiusti
Date: Wed Nov 14 20:12:16 2012
New Revision: 1409363
URL: http://svn.apache.org/viewvc?rev=1409363&view=rev
Log:
PROTON-111: make platform agnostic timestamp public
Modified:
qpid/proton/trunk/proton-c/include/proton/driver.h
qpid/proton/trunk/proton-c/src/driver.c
qpid/proton/trunk/proton-c/src/messenger.c
Modified: qpid/proton/trunk/proton-c/include/proton/driver.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/driver.h?rev=1409363&r1=1409362&r2=1409363&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/driver.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/driver.h Wed Nov 14 20:12:16 2012
@@ -121,6 +121,16 @@ pn_listener_t *pn_driver_listener(pn_dri
*/
pn_connector_t *pn_driver_connector(pn_driver_t *driver);
+/** Get the current time in pn_timestamp_t format.
+ *
+ * Returns current time in milliseconds since Unix Epoch,
+ * as defined by AMQP 1.0
+ *
+ * @param[in] driver the driver
+ * @return current time
+ */
+pn_timestamp_t pn_driver_now(pn_driver_t *driver);
+
/** Free the driver allocated via pn_driver, and all associated
* listeners and connectors.
*
Modified: qpid/proton/trunk/proton-c/src/driver.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/driver.c?rev=1409363&r1=1409362&r2=1409363&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/driver.c (original)
+++ qpid/proton/trunk/proton-c/src/driver.c Wed Nov 14 20:12:16 2012
@@ -109,8 +109,6 @@ struct pn_connector_t {
/* Impls */
-static pn_timestamp_t pn_driver_now(pn_driver_t *driver);
-
// listener
static void pn_driver_add_listener(pn_driver_t *d, pn_listener_t *l)
@@ -608,14 +606,6 @@ void pn_connector_process(pn_connector_t
// driver
-static pn_timestamp_t pn_driver_now(pn_driver_t *driver)
-{
- struct timeval now;
- if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
-
- return ((pn_timestamp_t)now.tv_sec) * 1000 + (now.tv_usec / 1000);
-}
-
pn_driver_t *pn_driver()
{
pn_driver_t *d = (pn_driver_t *) malloc(sizeof(pn_driver_t));
@@ -833,3 +823,11 @@ pn_connector_t *pn_driver_connector(pn_d
return NULL;
}
+
+pn_timestamp_t pn_driver_now(pn_driver_t *driver)
+{
+ struct timeval now;
+ if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
+
+ return ((pn_timestamp_t)now.tv_sec) * 1000 + (now.tv_usec / 1000);
+}
Modified: qpid/proton/trunk/proton-c/src/messenger.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/messenger.c?rev=1409363&r1=1409362&r2=1409363&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/messenger.c (original)
+++ qpid/proton/trunk/proton-c/src/messenger.c Wed Nov 14 20:12:16 2012
@@ -465,11 +465,6 @@ void pn_messenger_reclaim(pn_messenger_t
}
}
-static long int millis(struct timeval tv)
-{
- return tv.tv_sec * 1000 + tv.tv_usec/1000;
-}
-
int pn_messenger_tsync(pn_messenger_t *messenger, bool (*predicate)(pn_messenger_t *), int timeout)
{
pn_connector_t *ctor = pn_connector_head(messenger->driver);
@@ -478,14 +473,13 @@ int pn_messenger_tsync(pn_messenger_t *m
ctor = pn_connector_next(ctor);
}
- struct timeval now;
- if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
- long int deadline = millis(now) + timeout;
+ pn_timestamp_t now = pn_driver_now(messenger->driver);
+ long int deadline = now + timeout;
bool pred;
while (true) {
pred = predicate(messenger);
- int remaining = deadline - millis(now);
+ int remaining = deadline - now;
if (pred || (timeout >= 0 && remaining < 0)) break;
int error = pn_driver_wait(messenger->driver, remaining);
@@ -534,7 +528,7 @@ int pn_messenger_tsync(pn_messenger_t *m
}
if (timeout >= 0) {
- if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
+ now = pn_driver_now(messenger->driver);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org