Name |
Last commit
|
Last update |
---|---|---|
.. | ||
atomic.c | ||
basic.c | ||
diff.c | ||
iterator.c | ||
refdb.c | ||
thread_helpers.c | ||
thread_helpers.h | ||
tlsdata.c |
There were some subtle semantic differences between the various implementations of atomic functions. Now they behave the same, have tests and are better documented to avoid this from happening again in the future. Of note: * The semantics chosen for `git_atomic_compare_and_swap` match `InterlockedCompareExchangePointer`/`__sync_cal_compare_and_swap` now. * The semantics chosen for `git_atomic_add` match `InterlockedAdd`/`__atomic_add_fetch`. * `git_atomic_swap` and `git_atomic_load` still have a bit of semantic difference with the gcc builtins / msvc interlocked operations, since they require an l-value (not a pointer). If desired, this can be homogenized.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
atomic.c | Loading commit data... | |
basic.c | Loading commit data... | |
diff.c | Loading commit data... | |
iterator.c | Loading commit data... | |
refdb.c | Loading commit data... | |
thread_helpers.c | Loading commit data... | |
thread_helpers.h | Loading commit data... | |
tlsdata.c | Loading commit data... |