diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2016-07-23 20:50:09 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2016-07-23 20:50:09 +0000 | 
| commit | f3fbd1c0586ff6ec7895991e6c28f61a503c36a8 (patch) | |
| tree | 48d008fd3df8c0e73271a4b18474e0aac6dbfe33 /source/Host/posix/HostThreadPosix.cpp | |
| parent | 2fc5d2d1dfaf623ce4e24cd8590565902f8c557c (diff) | |
Notes
Diffstat (limited to 'source/Host/posix/HostThreadPosix.cpp')
| -rw-r--r-- | source/Host/posix/HostThreadPosix.cpp | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/source/Host/posix/HostThreadPosix.cpp b/source/Host/posix/HostThreadPosix.cpp index 9c48924319388..f1a6d6f831422 100644 --- a/source/Host/posix/HostThreadPosix.cpp +++ b/source/Host/posix/HostThreadPosix.cpp @@ -53,13 +53,18 @@ Error  HostThreadPosix::Cancel()  {      Error error; +    if (IsJoinable()) +    {  #ifndef __ANDROID__ -    int err = ::pthread_cancel(m_thread); -    error.SetError(err, eErrorTypePOSIX); +#ifndef __FreeBSD__ +        assert(false && "someone is calling HostThread::Cancel()"); +#endif +        int err = ::pthread_cancel(m_thread); +        error.SetError(err, eErrorTypePOSIX);  #else -    error.SetErrorString("HostThreadPosix::Cancel() not supported on Android"); +        error.SetErrorString("HostThreadPosix::Cancel() not supported on Android");  #endif - +    }      return error;  } @@ -67,8 +72,11 @@ Error  HostThreadPosix::Detach()  {      Error error; -    int err = ::pthread_detach(m_thread); -    error.SetError(err, eErrorTypePOSIX); +    if (IsJoinable()) +    { +        int err = ::pthread_detach(m_thread); +        error.SetError(err, eErrorTypePOSIX); +    }      Reset();      return error;  }  | 
