summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/clock.cpp2
-rw-r--r--src/ctx.cpp6
-rw-r--r--src/select.cpp3
3 files changed, 9 insertions, 2 deletions
diff --git a/src/clock.cpp b/src/clock.cpp
index 736748d..8eb5fd8 100644
--- a/src/clock.cpp
+++ b/src/clock.cpp
@@ -89,7 +89,7 @@ uint64_t zmq::clock_t::now_ms ()
uint64_t zmq::clock_t::rdtsc ()
{
#if (defined _MSC_VER && (defined _M_IX86 || defined _M_X64))
- uint64_t current_time = __rdtsc ();
+ return __rdtsc ();
#elif (defined __GNUC__ && (defined __i386__ || defined __x86_64__))
uint32_t low, high;
__asm__ volatile ("rdtsc" : "=a" (low), "=d" (high));
diff --git a/src/ctx.cpp b/src/ctx.cpp
index 7ed924d..eb4b412 100644
--- a/src/ctx.cpp
+++ b/src/ctx.cpp
@@ -316,7 +316,13 @@ void zmq::ctx_t::dezombify ()
for (zombies_t::iterator it = zombies.begin (); it != zombies.end ();) {
uint32_t slot = (*it)->get_slot ();
if ((*it)->dezombify ()) {
+#if defined _MSC_VER
+
+ // HP implementation of STL requires doing it this way...
+ it = zombies.erase (it);
+#else
zombies.erase (it);
+#endif
empty_slots.push_back (slot);
slots [slot] = NULL;
}
diff --git a/src/select.cpp b/src/select.cpp
index f6e5133..ae2ffe2 100644
--- a/src/select.cpp
+++ b/src/select.cpp
@@ -156,7 +156,8 @@ void zmq::select_t::loop ()
uint64_t timeout = execute_timers ();
// Wait for events.
- struct timeval tv = {timeout / 1000, timeout % 1000 * 1000};
+ struct timeval tv = {(long) (timeout / 1000),
+ (long) (timeout % 1000 * 1000)};
int rc = select (maxfd + 1, &readfds, &writefds, &exceptfds,
timeout ? &tv : NULL);