diff --git a/builds/msvc/libzmq/libzmq.vcproj b/builds/msvc/libzmq/libzmq.vcproj
index c7b256a5..ffe8a17a 100644
--- a/builds/msvc/libzmq/libzmq.vcproj
+++ b/builds/msvc/libzmq/libzmq.vcproj
@@ -169,6 +169,10 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
+
+
@@ -269,6 +273,10 @@
RelativePath="..\..\..\src\poll.cpp"
>
+
+
@@ -383,6 +391,10 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
+
+
@@ -391,6 +403,14 @@
RelativePath="..\..\..\src\atomic_ptr.hpp"
>
+
+
+
+
@@ -439,10 +459,6 @@
RelativePath="..\..\..\src\fq.hpp"
>
-
-
@@ -475,6 +491,10 @@
RelativePath="..\..\..\src\lb.hpp"
>
+
+
@@ -520,13 +540,21 @@
>
+
+
+
+
@@ -555,6 +583,10 @@
RelativePath="..\..\..\src\select.hpp"
>
+
+
diff --git a/src/clock.cpp b/src/clock.cpp
index 736748d8..8eb5fd89 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 7ed924db..eb4b412c 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 f6e51333..ae2ffe2f 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);