[
https://issues.apache.org/jira/browse/THRIFT-1361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13132128#comment-13132128
]
alexandre parenteau commented on THRIFT-1361:
---------------------------------------------
@Roger: Thanks for the detailed infos: I tried to fix the patch with Boost
1.0.42, but not to prevail. I'd suggest to defer the bug to 0.9 (or something
of this nature), since the last patch it is not strictly necessary for the
overall feature to work. Thanks!
> Optional replacement of pthread by boost::thread
> ------------------------------------------------
>
> Key: THRIFT-1361
> URL: https://issues.apache.org/jira/browse/THRIFT-1361
> Project: Thrift
> Issue Type: Improvement
> Components: C++ - Library
> Affects Versions: 0.8
> Environment: Linux and Windows
> Reporter: alexandre parenteau
> Priority: Minor
> Labels: patch
> Fix For: 0.8
>
> Attachments: THRIFT-1361-configure.ac.patch, THRIFT-1361-rev2.patch,
> THRIFT-1361.patch
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> What it is:
> * an experimental alternative to using pthread in Thrift, by using
> boost::thread and boost::interprocess instead (--enable-boostthreads)
> * a way for thrift clients already depending on boost::thread to blend better
> with thrift
> * a solution to the Windows problem of having to link with ASF incompatible
> license of pthread_win32 (GPL), add more servers and transports to WIN32
> (pooled, file, pipe...), and allow for a 64bits WIN32. See THRIFT-1031 for
> details.
> What it is NOT:
> * a replacement for the POSIX thread version of thrift: the POSIX pthread
> version has more features, and is probably more stable/mature. This feature
> is turned off by default by configure
> * a mature code: it has been really lightly tested, and is aimed primarily at
> the WIN32 platform
> New dependencies:
> * if --enable-boostthreads is provided, libthrift.so will link with shared
> libboost_thread.so (cannot work with libboost_thread.a AFAIK). This forces in
> effect Thrift to use a version of boost compiled with "./bjam link=shared"
> Bugs/Testing:
> * ./TestServer --server-type=thread-pool: PASS
> * ./TestServer --server-type=threaded: PASS
> * TFileTransportTest::test_destructor: FAILS: could not tell whether this is
> because I'm using a slow (virtual) machine (as pointed by the test comment)
> * Tested on Ubuntu/Windows, boost 1.44, libevent 2.0.14: however did not
> change the vc10 project files, because of potential conflict with on going
> THRIFT-1031
> * It is now possible to include more servers/transports to Win32, and also
> remove all pthread_win32 dependencies
> Related JIRA:
> * THRIFT-1031: Windows port
> Side notes:
> * there are minor corrections inside PosixThreadFactory for all platforms
> ("started" vs "starting"...), so that Win32 port also works with pthread_win32
> * TFileTransport has been enhanced to use the existing Mutex and Monitor
> abstractions
> * a minor fix in TSocket.cpp prevents verbose error, WIN32 only
> * minor enhancement by using WSAPoll if available, WIN32 only
> * on msvc10 and boost 1.44, there is a problem deep inside
> boost::interprocess: boost/interprocess/detail/move.hpp needs to be patched:
> {code}
> index 31d108f..42aa227 100644
> --- a/boost/interprocess/detail/move.hpp
> +++ b/boost/interprocess/detail/move.hpp
> @@ -339,7 +339,7 @@ rvalue_reference move (input_reference);
> #else
> template <class T> inline
> typename remove_reference<T>::type&& move(T&& t)
> -{ return t; }
> +{ return static_cast<typename remove_reference<T>::type &&>(t); }
> #endif
> {code}
> Please let me know of any questions, testing help appreciated (./configure
> --enable-boostthreads). This is an important change for our company, to get a
> Windows port of Thrift more on par with Linux features.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira