[ https://issues.apache.org/jira/browse/THRIFT-1217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13054500#comment-13054500 ]
alexandre parenteau commented on THRIFT-1217: --------------------------------------------- @Roger: to avoid some confusion: - the attached patch does not depend on pthread. The suggestion here is merely to use evutil_socketpair instead of pipe. - evutil_socketpair is part of libevent 1.4 on ubuntu 10.10, although I did not test it. All the other changes related to win32 in the attached patch attached are not to take literally (Winsock2.h, static cast...). About THRIFT-1031: - my understanding is that THRIFT-1031 does not support async/libevent server on Windows (??) - libevent+thrift server seems VERY fast on win, and is needed for my project (blocking server won't do) - APR was not strictly necessary for the Non-Blocking server win32 port (i.e. libevent+pthread-win32), although I tried the THRIFT-1031 patch and observed it made the port a bit cleaner, so I would not refrain from adding APR to thrift-C++ I decided after reviewing the win32 patches, it was better to open a separate issue, since the change here is atomic and should bare little consequences on linux. I was hoping that (naively) the win32 delta would get smaller by using the compatible call. All that said, I'd be really happy to contribute to THRIFT-1031 for it to go through. For this to happen, I would hope to have access to a shared implementation on top of 0.6.1 (the way I provided it on github), so I can test it regularly. Let me know if I can contribute somehow! As a conclusion, I think this patch is somewhat unrelated to THRIFT-1031, but it will help a future port of the NB server on win32 (assuming also someone will replace the pthread dependency by boost, which does not seem trivial at all). > Use evutil_socketpair instead of pipe (Windows port) > ---------------------------------------------------- > > Key: THRIFT-1217 > URL: https://issues.apache.org/jira/browse/THRIFT-1217 > Project: Thrift > Issue Type: Improvement > Components: C++ - Library > Affects Versions: 0.6.1, 0.7 > Environment: Windows C++ 9.0, 10.0 > Reporter: alexandre parenteau > Priority: Minor > Labels: patch > Fix For: 0.7 > > Attachments: evutil_socketpair.txt > > Original Estimate: 24h > Remaining Estimate: 24h > > As part of an effort to use the Non-Blocking server (using libevent) on > Windows, it was necessary to remove the use of "pipe" for the notification > mechanism to signal end-of-task. We propose to use evutil_socketpair instead > (tested with libevent 2.0.12). Patch included. Please see > https://github.com/aubonbeurre/thrift/blob/alex-0.6.1/README.non.blocking.Windows > for more details. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira