gpt4 book ai didi

glib - 为什么 glib 不使用私有(private) futex?

转载 作者:行者123 更新时间:2023-12-01 06:25:43 25 4
gpt4 key购买 nike

在调查一些性能问题时,我最终进入了 gthread-posix.c。
在那里我找到了如下代码:

static void __attribute__((noinline))
g_mutex_lock_slowpath (GMutex *mutex)
{
/* Set to 2 to indicate contention. If it was zero before then we
* just acquired the lock.
*
* Otherwise, sleep for as long as the 2 remains...
*/
while (exchange_acquire (&mutex->i[0], 2) != 0)
syscall (__NR_futex, &mutex->i[0], (gsize) FUTEX_WAIT, (gsize) 2, NULL);
}

我很好奇为什么它在这里和其他地方不使用 FUTEX_WAIT_PRIVATE。至少在 ARM 上,非私有(private) futex 的速度要慢得多,而且我的印象是 glib 用于多线程而不是共享内存中的进程间通信。

最佳答案

GLib 现在使用 FUTEX_WAIT_PRIVATE ,自 2015 年 3 月起。见 this committhe related bug report .

关于glib - 为什么 glib 不使用私有(private) futex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28896109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com