Skip to content

Tags: google/nsync

Tags

1.30.0

Toggle 1.30.0's commit message
Version 1.30.0 includes updated for later versions of bazel and cmake,

a fix of a duplicate symbol on MacOS, a missing #include in the C++,
and change to a C++ initializer for an atomic variable.

1.29.2

Toggle 1.29.2's commit message
Fix bug in bazel BUILD file: clang-cl takes MSVC-style flags, rather …

…than clang-style flags.

1.29.1

Toggle 1.29.1's commit message
Increment the version number in VERSION.

I fotgot to go that for tag 1.29.0

1.29.0

Toggle 1.29.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
platform: nsync futex: fix build on riscv32 (#18)

RISCV glibc has decided to use 64bit time_t from get go unlike
other 32bit architecture therefore aliasing __NR_futex to
__NR_futex_time64 helps avoid the below errors on rv32

error: '__NR_futex' was not declared in this scope
|    21 |         return (syscall (__NR_futex, uaddr, op, val, timeout, uaddr2, val3));
|       |

1.28.1

Toggle 1.28.1's commit message
I forgot to keep bazel/bazel_BUILD in step with BUILD.

1.28.0

Toggle 1.28.0's commit message
Increase nsync's version number to 1.28.0

1.27.0

Toggle 1.27.0's commit message
Increase the version number to 1.27.0.

This version incorporates a bug fix; I had omitted a memory barrier.
Thanks to Justine Tunney for finding and fixing it.

1.26.0

Toggle 1.26.0's commit message
Update nsync Thread Sanitizer (TSan) annotations.

I had previously added some TSan dynamic annotations to nsync to avoid TSan
race warnings.  However, depending on whether gcc or clang was used, and
depending on the version of clang used, TSan race warnings could be reported on
the nsync tests.

When TSan is in used, this change adds a call to AnnotateRWLockAcquired just
after each nsync mu acquistion, and a call AnnotateRWLockReleased just before
each release.  Additionally, AnnotateRWLockCreate is called at each mu
creation.  (nsync mutex destruction is inferred when memory is recycled.)
Macros are used so that these additional calls are not introduced when TSan is
not in use.

All tests now pass without warnings in TSan mode in both clang and gcc,
including in all the versions that previously reported warnings.

In addition, the version number is incremented, and there are a few minor
whitespace changes to make the TSan annotations conform the the project's
whitespace conventions.

1.25.0

Toggle 1.25.0's commit message
Update the VERSION number.

1.24.0

Toggle 1.24.0's commit message
In nsync, avoid an ABSL depepdency for TSAN annotations.

The code used to use ABSL macros for TSAN annotations that suppress warnings.

This was a problem because:
- ABSL is changing the names of the macros(!), and the team seems intent on
  forcing clients to make the incompatible change, even if the users of those
  clients have not yet switched to a suifficiently recent version of ABSL.  And
  they are doing this despite their (apparently false) claim of a 5-year API
  stability guarantee.
- The code had hard-wired a header file path that was wrong for most users,
  effectively preventing them from running with TSAN.
- The conditional compilation to detect TSAN worked only for clang, and not for
  gcc, even though gcc supports TSAN.

This change drops the ABSL dependency so there's no header file to include;
it uses conditional compilation that detects TSAN on moth gcc and clang; and
it uses the gcc/clang annotation routines directly.

The version number is also increased.