Hans-Kristian Arntzen : vkd3d: Add MSVC path for atomic_add_fetch.

Alexandre Julliard julliard at winehq.org
Tue Oct 1 15:42:41 CDT 2019


Module: vkd3d
Branch: master
Commit: f180e95e2fabb1a4f99202dc4041b4d37d578035
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=f180e95e2fabb1a4f99202dc4041b4d37d578035

Author: Hans-Kristian Arntzen <post at arntzen-software.no>
Date:   Tue Oct  1 16:07:45 2019 +0200

vkd3d: Add MSVC path for atomic_add_fetch.

Signed-off-by: Hans-Kristian Arntzen <post at arntzen-software.no>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/private/vkd3d_common.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/private/vkd3d_common.h b/include/private/vkd3d_common.h
index d8fb361..ac217e9 100644
--- a/include/private/vkd3d_common.h
+++ b/include/private/vkd3d_common.h
@@ -164,6 +164,9 @@ static inline LONG InterlockedDecrement(LONG volatile *x)
 
 #if HAVE_SYNC_ADD_AND_FETCH
 # define atomic_add_fetch(ptr, val) __sync_add_and_fetch(ptr, val)
+#elif defined(_MSC_VER)
+/* InterlockedAdd returns value after increment, like add_and_fetch. */
+# define atomic_add_fetch(ptr, val) InterlockedAdd(ptr, val)
 #else
 # error "atomic_add_fetch() not implemented for this platform"
 #endif  /* HAVE_SYNC_ADD_AND_FETCH */




More information about the wine-cvs mailing list