[
https://issues.apache.org/jira/browse/THRIFT-1753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13678276#comment-13678276
]
Hudson commented on THRIFT-1753:
--------------------------------
Integrated in Thrift #691 (See [https://builds.apache.org/job/Thrift/691/])
THRIFT-1753: Multiple C++ Windows, OSX, and iOS portability issues
(Revision 7cb7fc8a7342e714afbf517086d8a62622758148)
Result = SUCCESS
carl :
Files :
* lib/cpp/src/thrift/windows/SocketPair.cpp
* lib/cpp/src/thrift/concurrency/StdThreadFactory.h
* lib/cpp/src/thrift/concurrency/BoostMonitor.cpp
* lib/cpp/src/thrift/server/TNonblockingServer.h
* lib/cpp/src/thrift/server/TNonblockingServer.cpp
* lib/cpp/src/thrift/concurrency/TimerManager.h
* lib/cpp/src/thrift/concurrency/StdMutex.cpp
* lib/cpp/src/thrift/transport/TFDTransport.cpp
* lib/cpp/src/thrift/concurrency/FunctionRunner.h
* lib/cpp/src/thrift/windows/GetTimeOfDay.cpp
* lib/cpp/src/thrift/transport/TFileTransport.h
* lib/cpp/src/thrift/windows/WinFcntl.cpp
* lib/cpp/src/thrift/windows/GetTimeOfDay.h
* lib/cpp/src/thrift/transport/TSSLSocket.cpp
* lib/cpp/src/thrift/concurrency/Util.h
* lib/cpp/src/thrift/transport/TFileTransport.cpp
* lib/cpp/src/thrift/concurrency/PlatformThreadFactory.h
* lib/cpp/src/thrift/transport/TSocketPool.h
* lib/cpp/src/thrift/concurrency/StdMonitor.cpp
* lib/cpp/src/thrift/windows/SocketPair.h
* lib/cpp/src/thrift/concurrency/TimerManager.cpp
* lib/cpp/src/thrift/concurrency/Util.cpp
* lib/cpp/src/thrift/concurrency/Mutex.cpp
* lib/cpp/src/thrift/windows/WinFcntl.h
* lib/cpp/src/thrift/windows/force_inc.h
* lib/cpp/src/thrift/transport/TServerSocket.cpp
* lib/cpp/src/thrift/windows/config.h
* lib/cpp/src/thrift/concurrency/Monitor.h
* lib/cpp/libthrift.vcxproj
* lib/cpp/src/thrift/transport/TSocket.cpp
* lib/cpp/src/thrift/transport/TSocket.h
* lib/cpp/src/thrift/concurrency/Monitor.cpp
* lib/cpp/src/thrift/async/TEvhttpClientChannel.cpp
* lib/cpp/src/thrift/protocol/TDebugProtocol.cpp
* lib/cpp/src/thrift/TLogging.h
* lib/cpp/src/thrift/async/TEvhttpServer.cpp
* lib/cpp/src/thrift/Thrift.cpp
* lib/cpp/src/thrift/windows/TWinsockSingleton.cpp
* lib/cpp/src/thrift/transport/PlatformSocket.h
* lib/cpp/src/thrift/concurrency/Thread.h
* lib/cpp/src/thrift/transport/TPipe.cpp
* lib/cpp/src/thrift/Thrift.h
* lib/cpp/src/thrift/windows/TWinsockSingleton.h
* lib/cpp/src/thrift/windows/StdAfx.h
* lib/cpp/libthriftnb.vcxproj
* lib/cpp/src/thrift/windows/StdAfx.cpp
* lib/cpp/src/thrift/windows/TargetVersion.h
* lib/cpp/src/thrift/concurrency/StdThreadFactory.cpp
* lib/cpp/src/thrift/transport/TServerSocket.h
> Multiple C++ Windows, OSX, and iOS portability issues
> -----------------------------------------------------
>
> Key: THRIFT-1753
> URL: https://issues.apache.org/jira/browse/THRIFT-1753
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.9, 1.0
> Environment: Windows MSVC10, MSVC11
> OSX GCC-4.2
> iOS Clang-4.0
> Reporter: Ben Craig
> Fix For: 1.0
>
> Attachments: cleaner_port3.patch, cleaner_port4.patch
>
>
> These are all in the C++ library. Here is a summary of what I changed.
> All of these fixes make a ~5000 line patch (though a lot of that is
> deleted lines).
> * General cleanup of the msvc project
> * Using HAVE_CONFIG_H instead of force including files
> * Getting rid of some unnecessary files (stdafx.*, TargetVersion.h)
> * Significant rework of windows portability. No longer using config.h
> and force_inc.h to make Windows look like *nix. Instead, making lots of
> Thrift specific #defines that are vaguely *nixy, and having those forward
> to *nix or Windows stuff appropriately. For example, THRIFT_CTIME_R calls
> ctime_r on *nix, and a wrapper thrift_ctime_r on Windows. The old
> approach doesn't work when multiple libraries attempt the same trick. For
> example, if openssl #defined errno to ::WSAGetLastError() as well, then
> that would cause problems.
> * Adding preprocessor flag that can optionally squelch console output.
> Default behavior is unchanged. Console output is great for home deployed
> server apps, but it looks unprofessional for consumer apps.
> * Adding THRIFT_UNUSED_VARIABLE helper macro, to aid in squelching
> warnings.
> * Adding redirector header for <functional> and <tr1/functional>. Since
> namespaces aren't consistent (std vs std::tr1), I have added symbols to
> the apache::thrift::stdcxx namespace. This is important for Clang / iOS
> support
> * usleep and sleep on Windows were both sleeping in milliseconds. sleep
> now correctly sleeps for seconds, and usleep attempts to sleep for
> microseconds (after converting very coarsely to milliseconds).
> * Adding support for using C++11 std::thread (and mutex, and monitor).
> Thrift already supported boost::thread and posix threads. Clients that
> use std::thread no longer need built boost libraries. The boost headers
> are sufficient for them. Switching from boost::thread to std::thread
> resulted in a ~50k reduction in exe size in my tests. By default, msvc10
> and below will use boost::thread, msvc11 and up will use std::thread.
> * Fixing more 64-bit socket truncation issues in non-blocking server and
> ssl support. openssl itself has socket truncation issues, so I could not
> fix them all.
> * Fixed THRIFT-1692 "SO_REUSEADDR allows for socket hijacking on Windows
> ". Now using SO_EXCLUSIVEADDRUSE on windows, and SO_REUSEADDR on *nix.
> * Making TFileTransport use thrift style threads instead of redoing all
> the pthread+boost stuff itself.
> * Includes, and builds upon THRIFT-1740 (Make C++ library build on OS X
> and iOS)
> * Moved several functions out of thrift/windows/config.h, and into other
> thrift/windows headers.
> * Using built-in stdint.h on Windows if available (by checking
> HAVE_STDINT_H) and
> using boost typedefs otherwise.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira