Hi,

When using the Linux Skype client under FreeBSD I sometimes see that the Audio disappears in the one direction. When I check "ps auxw" I see skype is stuck on a so-called Futex. I looked into the Linux futex code and see that wakeup_one() is used instead of wakeup(). Maybe others can test too and verify if replacing wakeup_one() by wakeup() makes any difference in for Linux applications using Futexes.

--HPS


diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c
index 9b4c92f..e893bf4 100644
--- a/sys/compat/linux/linux_futex.c
+++ b/sys/compat/linux/linux_futex.c
@@ -498,7 +498,7 @@ futex_wake(struct futex *f, int n, uint32_t bitset)
                wp->wp_flags |= FUTEX_WP_REMOVED;
                TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list);
                LIN_SDT_PROBE1(futex, futex_wake, wakeup, wp);
-               wakeup_one(wp);
+               wakeup(wp);
                if (++count == n)
                        break;
        }
@@ -525,7 +525,7 @@ futex_requeue(struct futex *f, int n, struct futex *f2, int 
n2)
                        wp->wp_flags |= FUTEX_WP_REMOVED;
                        TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list);
                        LIN_SDT_PROBE1(futex, futex_requeue, wakeup, wp);
-                       wakeup_one(wp);
+                       wakeup(wp);
                } else {
                        LIN_SDT_PROBE3(futex, futex_requeue, requeue,
                            f->f_uaddr, wp, f2->f_uaddr);

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to