From 37cacc5700eaaaddbe2df6e3affeca4a335b023a Mon Sep 17 00:00:00 2001
From: Martin Sustrik <sustrik@fastmq.com>
Date: Mon, 14 Sep 2009 12:28:13 +0200
Subject: [PATCH] ZMQII-1: Win32 - failure on shutdown

---
 java/Socket.cpp           | 2 ++
 msvc/libzmq/libzmq.vcproj | 4 ++++
 src/select.cpp            | 4 ++--
 src/socket_base.cpp       | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/java/Socket.cpp b/java/Socket.cpp
index a7b2fe5d..2a2f420b 100644
--- a/java/Socket.cpp
+++ b/java/Socket.cpp
@@ -22,6 +22,8 @@
 #include <assert.h>
 #include <errno.h>
 
+#include "../src/stdint.hpp"
+
 #include "zmq.h"
 #include "org_zmq_Socket.h"
 
diff --git a/msvc/libzmq/libzmq.vcproj b/msvc/libzmq/libzmq.vcproj
index 27986d4a..697b75fc 100644
--- a/msvc/libzmq/libzmq.vcproj
+++ b/msvc/libzmq/libzmq.vcproj
@@ -229,6 +229,10 @@
 				RelativePath="..\..\src\poll.cpp"
 				>
 			</File>
+			<File
+				RelativePath="..\..\src\pub.cpp"
+				>
+			</File>
 			<File
 				RelativePath="..\..\src\select.cpp"
 				>
diff --git a/src/select.cpp b/src/select.cpp
index f10acdc1..cb17169b 100644
--- a/src/select.cpp
+++ b/src/select.cpp
@@ -53,10 +53,10 @@ zmq::select_t::select_t () :
 
 zmq::select_t::~select_t ()
 {
+    worker.stop ();
+
     //  Make sure there are no fds registered on shutdown.
     zmq_assert (load.get () == 0);
-
-    worker.stop ();
 }
 
 zmq::handle_t zmq::select_t::add_fd (fd_t fd_, i_poll_events *events_)
diff --git a/src/socket_base.cpp b/src/socket_base.cpp
index 04297267..51649fbe 100644
--- a/src/socket_base.cpp
+++ b/src/socket_base.cpp
@@ -281,7 +281,7 @@ int zmq::socket_base_t::connect (const char *addr_)
 #endif
 
     //  Unknown address type.
-    errno = ENOTSUP;
+    errno = EFAULT;
     return -1;
 }