-
Michael Stahl yazdı
e3a74864 was subtly wrong: in a --enable-online-update build, the assertion triggered with nonsensical stacks like: 4 in osl_joinWithThread(oslThread) at /sal/osl/unx/thread.cxx:441 5 in osl::Thread::join() at /include/osl/thread.hxx:111 6 in (anonymous namespace)::UpdateCheckJob::notifyTermination(com::sun::star::lang::EventObject const&) at /extensions/source/update/check/updatecheckjob.cxx:312 7 in framework::Desktop::impl_sendNotifyTerminationEvent() at /framework/source/services/desktop.cxx:1665 8 in framework::Desktop::terminate() at /framework/source/services/desktop.cxx:307 ... 14 in binaryurp::(anonymous namespace)::request(void*) at /binaryurp/source/reader.cxx:85 15 in cppu_threadpool::JobQueue::enter(long, bool) at /cppu/source/threadpool/jobqueue.cxx:115 16 in cppu_threadpool::ORequestThread::run() at /cppu/source/threadpool/thread.cxx:171 The problem is that the early-return case is (accidentally) doing the right thing for an attempt to join a thread that has already terminated normally, but the assertion must not trigger when the terminated thread's ID is re-used by a later thread. Change-Id: I2a6764d2ec189d96ccb366db14395029bb8e73ad
8dc2f2f1