--- ../libqalculate-2.0.0/libqalculate/util.cc 2017-08-27 20:37:20.000000000 +0200 +++ ./libqalculate/util.cc 2017-08-30 21:33:31.235484528 +0200 @@ -771,8 +771,8 @@ } void Thread::enableAsynchronousCancel() { - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + //pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); + //pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); } void *Thread::doRun(void *data) { @@ -795,7 +795,8 @@ bool Thread::cancel() { if(!running) return true; - running = pthread_cancel(m_thread) != 0; + //running = pthread_cancel(m_thread) != 0; + running = pthread_kill(m_thread, 0) != 0; return !running; }