[ 
https://issues.apache.org/jira/browse/THRIFT-3994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III closed THRIFT-3994.
-------------------------------------

This issue was resolved without a fixVersion but was not closed - closing.

> Wrong pthread_t handling under MinGW
> ------------------------------------
>
>                 Key: THRIFT-3994
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3994
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Windows, MinGW/[MSYS2|https://msys2.github.io], GCC 6.2.0
>            Reporter: Stefan Zimmermann
>            Priority: Major
>
> Compiling {{7ab125a253e5aebbf2a0ed9a0a1602a4b879eca7}} under MinGW/MSYS2 with 
> GCC 6.2.0:
> {code}
> src/thrift/concurrency/PosixThreadFactory.cpp: In member function 'virtual 
> apache::thrift::concurrency::Thread::id_t 
> apache::thrift::concurrency::PthreadThread::getId()':
> src/thrift/concurrency/PosixThreadFactory.cpp:177:35: error: request for 
> member 'p' in 
> '((apache::thrift::concurrency::PthreadThread*)this)->apache::thrift::concurrency::PthreadThread::pthread_',
>  which is of non-class type 'pthread_t {aka long long unsigned int}'
>      return (Thread::id_t)pthread_.p;
> {code}
> {code}
> src/thrift/concurrency/PosixThreadFactory.cpp: In member function 'virtual 
> apache::thrift::concurrency::Thread::id_t 
> apache::thrift::concurrency::PosixThreadFactory::getCurrentThreadId() const':
> src/thrift/concurrency/PosixThreadFactory.cpp:311:39: error: request for 
> member 'p' in 'pthread_self()', which is of non-class type 'pthread_t {aka 
> long long unsigned int}'
>    return (Thread::id_t)pthread_self().p;
> {code}
> Under MinGW, pthread_t is default POSIX, but {{_WIN32}} is defined, so the 
> following pre-processor switches don't work correctly in this case:
> {code}
>   Thread::id_t getId() {
> #ifndef _WIN32
>     return (Thread::id_t)pthread_;
> #else
>     return (Thread::id_t)pthread_.p;
> #endif // _WIN32
>   }
> {code}
> {code}
> Thread::id_t PosixThreadFactory::getCurrentThreadId() const {
> #ifndef _WIN32
>   return (Thread::id_t)pthread_self();
> #else
>   return (Thread::id_t)pthread_self().p;
> #endif // _WIN32
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to