[Groonga-commit] groonga/groonga at ee5c762 [master] Add missing atomic operations which supports GCC atomic builtins

Back to archive index

HAYASHI Kentaro null+****@clear*****
Sun Nov 2 19:47:33 JST 2014


HAYASHI Kentaro	2014-11-02 19:47:33 +0900 (Sun, 02 Nov 2014)

  New Revision: ee5c762c4b8d598d9568f1bc707a14a149b8deca
  https://github.com/groonga/groonga/commit/ee5c762c4b8d598d9568f1bc707a14a149b8deca

  Message:
    Add missing atomic operations which supports GCC atomic builtins
    
    By this change, Groonga works on armhf platform now!
    
    Note that it needs GCC 4.8 to build. GCC 4.6/4.7/4.9 may fails.

  Modified files:
    lib/grn.h

  Modified: lib/grn.h (+5 -0)
===================================================================
--- lib/grn.h    2014-11-02 18:45:39 +0900 (ebc1af4)
+++ lib/grn.h    2014-11-02 19:47:33 +0900 (ee1fe3d)
@@ -508,6 +508,11 @@ typedef int grn_cond;
 /* todo */
 #  define GRN_BIT_SCAN_REV(v,r)  for (r = 31; r && !((1 << r) & v); r--)
 #  define GRN_BIT_SCAN_REV0(v,r) GRN_BIT_SCAN_REV(v,r)
+# elif defined(__ATOMIC_SEQ_CST) /* GCC atomic builtins */
+#  define GRN_ATOMIC_ADD_EX(p,i,r) \
+  (r = __atomic_fetch_add(p, i, __ATOMIC_SEQ_CST))
+#  define GRN_BIT_SCAN_REV(v,r)  for (r = 31; r && !((1 << r) & v); r--)
+#  define GRN_BIT_SCAN_REV0(v,r) GRN_BIT_SCAN_REV(v,r)
 # else /* ATOMIC ADD */
 /* todo */
 #  define GRN_BIT_SCAN_REV(v,r)  for (r = 31; r && !((1 << r) & v); r--)
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index