thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peace <p...@yahoo.com>
Subject Re: Thrift C++ on windows reports WSAPoll error
Date Thu, 03 May 2012 20:11:48 GMT
That section of README_WINDOWS might be outdated. Line 24 of that same
Thrift.h file includes windows/config.h so the following one on line 28 may
be redundant. My initial impression is that the first one under #ifdef
_WIN32 should be the only one needed.

I agree that instantiating TWinsockSingleton in TServerSocket::listen() is
a good approach. I had manually called WSAStartup when using TCP sockets
under Windows which isn't as convenient. Would you (Lingfeng) or Denis
submit a patch for that? I could do it but don't want to take credit for it
unless you don't mind me submitting the patch.


  ------------------------------
*From:* Lingfeng Zhuang
*To:* user@thrift.apache.org
*Sent:* Thursday, May 3, 2012 11:42 AM
*Subject:* Re: Thrift C++ on windows reports WSAPoll error

I just checked out latest code from SVN.

As README_WINDOWS said, I defined HAVE_CONFIG_H. When building, compiler
reports

“config.h”: No such file or directory c:\thrift\lib\cpp\src\thrift\thrift.h
28 1 server

I have to change all
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

to

#ifdef HAVE_CONFIG_H
#include "windows/config.h"
#endif

After it, compiling succeed. But console reports the error when running.

Starting the server...
Thrift: Fri May 04 00:37:23 2012 TServerSocket::listen() socketpair() errno
= 10093
Thrift: Fri May 04 00:37:23 2012 getaddrinfo 10093: application does not
call WSAStartup, or WSAStartup failed.

It runs fine after changing TServerSocket::listen to (as Denis said)

void TServerSocket::listen() {
#ifdef _WIN32
TWinsockSingleton::create();
#endif // _WIN32

Regards,

zlf


On Thu, May 3, 2012 at 10:41 PM, Peace wrote:

Thrift explicitly defines WSAPoll() since XP does not support that call. It
was introduced in Vista. There was a bug in the Thrift Windows code that
caused it to never follow the XP path to define WSAPoll(). The patch in
THRIFT-1512 fixes this and should be available in the current Thrift 0.9
development code on the SVN trunk.

 ------------------------------
*From:* Lingfeng Zhuang
*To:* user@thrift.apache.org
*Sent:* Thursday, May 3, 2012 8:25 AM
*Subject:* Thrift C++ on windows reports WSAPoll error

 Hi all,
I create an empty C++ project with VS2010. Config boost and thrift
include/lib folders. Add cpp tutorials files into
project(CppServer.cpp, Calculator.cpp, shared_types.cpp, SharedService.cpp
and tutorial_types.cpp)

But when running it, it reports error "The procedure entry point WSAPoll
could not be located in the dynamic link library WS2_32.dll"

I tested it against both of boost 1.47 and 1.49. None of them works. My
test environment is 32bit windows xp.

VS project file is attached.

Regards,

zlf

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message