https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203162

Konstantin Belousov <k...@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #161136|0                           |1
        is obsolete|                            |

--- Comment #7 from Konstantin Belousov <k...@freebsd.org> ---
Created attachment 161150
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=161150&action=edit
Ignore signal after a wakeup, if there was a complimentary open, even transient

The new version of the patch is even more aggressive with preferring a normal
return when there is both signal delivered and parallel open.  Now, I run
several thousand iterations of your test without hang, while before it would
reliably hang on first or second dozens.

Some clarification about signals.  Patch does not cause the signal to be lost. 
Before the patch, you get EINTR error when signal was generated _and_ parallel
complimentary type of open happen. Now, the syscall returns with success and
file descriptor, but before the usermode continues, a signal frame is pushed on
stack and signal handler run.  In other words, things are changed so that it
_looks_ like the signal was delivered slightly after the wakeup from open.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to