[all-commits] [llvm/llvm-project] 6e22b5: [libc++] Fix `std::atomic::wait` ulock wait UL_COM...

Hui via All-commits all-commits at lists.llvm.org
Sat Jun 1 13:12:26 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6e22b538da4b09efb10a59582a3f43d8128ae7d1
      https://github.com/llvm/llvm-project/commit/6e22b538da4b09efb10a59582a3f43d8128ae7d1
  Author: Hui <hui.xie1990 at gmail.com>
  Date:   2024-06-01 (Sat, 01 Jun 2024)

  Changed paths:
    M libcxx/src/atomic.cpp
    A libcxx/test/libcxx/atomics/atomics.syn/wait.pass.cpp

  Log Message:
  -----------
  [libc++] Fix `std::atomic::wait` ulock wait UL_COMPARE_AND_WAIT64 (#92783)

in `atomic::wait`, when we call the platform wait ulock_wait , we are
using UL_COMPARE_AND_WAIT. But we should use UL_COMPARE_AND_WAIT64
instead as the address we are waiting for is a 64 bit integer.

fixes https://github.com/llvm/llvm-project/issues/85107

It is rather hard to test directly because in `atomic::wait`, before
calling into the platform wait, our c++ code has some poll logic which
checks the value not changing. Thus in this patch, the test is using the
internal function.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list