- 09 8月, 2018 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 02 8月, 2018 5 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
-
- 01 8月, 2018 8 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
lwsync() is a full read/write-barrier. That's all we need, never need sync(). I'm not sure why an isync() was used in fetch_and_add, but since that's a read-modify-write, I just changed it to have lwsync() on both sides.
-
由 Behdad Esfahbod 提交于
Since add_int and cas are both read-modify-write, I wonder if we also need a barrier after them.
-
由 Behdad Esfahbod 提交于
Originally, glib's atomic_get was implemented as "memory_barrier; load". I copied this into cairo, fontconfig, and harfbuzz. However, that's wrong. Correct way is "load; memory_barrier". The details are long and hard to fully grasp. Best to read: https://www.kernel.org/doc/Documentation/memory-barriers.txt Also see my report against GNOME: https://gitlab.gnome.org/GNOME/glib/issues/1449 Note that this is irrelevant if C++11-like atomic ops are available.
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
To help TSan and be more "correct".
-
由 Behdad Esfahbod 提交于
Although, all implementations just elevate that to ACQUIRE. But requirement for us is just CONSUME.
-
由 Behdad Esfahbod 提交于
This reverts commit b1e5650c. After lots of head-scratching and finally finding the only truly readable source to be the good old: https://www.kernel.org/doc/Documentation/memory-barriers.txt I've convinced myself that we need consume memory-ordering on get(). The location of memory-barrier in a load should be after, not before the load. That needs fixing. I'll do that separately.
-
- 31 7月, 2018 1 次提交
-
-
由 Behdad Esfahbod 提交于
We only use it before cmpexch, so relaxed is fine and faster for common case.
-
- 17 7月, 2018 2 次提交
-
-
由 Behdad Esfahbod 提交于
Fixed the crasher in it.
-
由 Behdad Esfahbod 提交于
This reverts commit 21fa170f. Is crashing. Oops.
-
- 16 7月, 2018 3 次提交
-
-
由 Behdad Esfahbod 提交于
Hopefully fixes bots.
-
由 Behdad Esfahbod 提交于
-
-
- 01 6月, 2018 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 04 1月, 2018 1 次提交
-
-
由 Bruce Mitchener 提交于
In macOS 10.12, the `OSMemoryBarrier` and related APIs were deprecated in favor of using `std::atomic`. On the way to supporting `std::atomic`, we can favor using the "Intel primitives" which are also available on macOS.
-
- 27 10月, 2017 1 次提交
-
-
- 17 5月, 2017 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 11 12月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 10 12月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
Patch from Volker Simonis.
-
- 10 4月, 2015 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 09 4月, 2015 3 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Konstantin Ritt 提交于
s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/ to bring it in par with hb_mutex_impl_t, then re-introduce hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t. In hb_reference_count_t, make it clear the non-atomic get and set are intentional due to nature of the cases they are used in (comparison to -1 and the debug output/tracing).
-
由 Behdad Esfahbod 提交于
Motivated by https://github.com/behdad/harfbuzz/pull/92
-
- 20 7月, 2014 2 次提交
-
-
由 Behdad Esfahbod 提交于
-
由 Behdad Esfahbod 提交于
Set requested windows header to Vista. See discussion: https://github.com/behdad/harfbuzz/commit/fbb2847f541389f40718af71c4945024ae177ab2#commitcomment-7054700
-
- 03 4月, 2014 1 次提交
-
-
由 Primiano Tucci 提交于
Many GCC versions don't define __arm64__
-
- 05 2月, 2014 1 次提交
-
-
由 Behdad Esfahbod 提交于
See thread "[HarfBuzz] compilation error of 0.9.26 with MinGW" started by Werner.
-
- 21 11月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 05 4月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
This almost reverts 2761e8a6, but only if under MINGW32, so it doesn't affect MSVC.
-
- 08 3月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
I added these because the older mingw32 toolchain didn't have MemoryBarrier(). The newer mingw-w64 toolchain however has. As reported by John Emmas this was causing build failure with MSVC (on glib) because of inline issues. But that reminded me that we may be taking this path even if the system implements MemoryBarrier as a function, which is a waste. So, just remove it.
-
- 13 2月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
Instead of checking for compiler, check for platform.
-
- 12 2月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
-
- 14 1月, 2013 1 次提交
-
-
由 Behdad Esfahbod 提交于
-