https://bugs.kde.org/show_bug.cgi?id=380269

--- Comment #7 from Louis Brunner <[email protected]> ---
Created attachment 109548
  --> https://bugs.kde.org/attachment.cgi?id=109548&action=edit
Partial wqthread fix

As reported by Alexandru in https://bugs.kde.org/show_bug.cgi?id=383723 and
this thread, as well as by FX in https://bugs.kde.org/show_bug.cgi?id=385279,
my previous patch doesn't include any fix for wqthread.

Here is a new patch that can be applied on top of my previous and Alexandru's
kevent_qos patches (which are needed for wqthread programs). It includes the
following elements (which I didn't know how to breakdown between the different
bug reports):
 - GS_CONST fix (as for regular threads)
 - Zero offset for tst->os_state.pthread (as it was the case for 10.6)
 - workq_ops(THREAD_KEVENT_RETURN) now behaves like workq_ops(THREAD_RETURN)
 - kevent_id (syscall:375) and thread_get_special_reply_port (mach:50)
implementation (the kevent_id one is copied from Alexandru's kevent_qos)

Note that after all these changes, programs using wqthreads still don't work.
Unfortunately, I am running into race conditions with the BigLock: either one
thread waiting for the lock to be released or another locking it twice. All
these changes are wrapped in #if DARWIN_VERS >= DARWIN_10_13, apart from the
THREAD_KEVENT_RETURN change. Last but not least, the patch doesn't worsen the
regtest results:

== 655 tests, 321 stderr failures, 74 stdout failures, 8 stderrB failures, 8
stdoutB failures, 31 post failures ==

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to