浏览代码

Add missing futex wake retry on old kernels

Samuel Thibault 9 年之前
父节点
当前提交
ba384a331a
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      src/common/thread.c

+ 3 - 0
src/common/thread.c

@@ -830,7 +830,10 @@ int starpu_pthread_spin_unlock(starpu_pthread_spinlock_t *lock)
 	STARPU_SYNCHRONIZE();
 	if (syscall(SYS_futex, &lock->taken, _starpu_futex_wake, 1, NULL, NULL, 0))
 		if (errno == ENOSYS)
+		{
 			_starpu_futex_wake = FUTEX_WAKE;
+			syscall(SYS_futex, &lock->taken, _starpu_futex_wake, 1, NULL, NULL, 0);
+		}
 #else /* !SIMGRID && !LINUX */
 	STARPU_RELEASE(&lock->taken);
 #endif