Merge remote-tracking branch 'origin/master' into blender2.8
[blender.git] / source / blender / blenkernel / intern / library.c
index f747bdb91faf0c24f07dd86ec808122887868405..83549ae687965fc712e1015480846dccef946fee 100644 (file)
 #include "IMB_imbuf.h"
 #include "IMB_imbuf_types.h"
 
 #include "IMB_imbuf.h"
 #include "IMB_imbuf_types.h"
 
+#include "atomic_ops.h"
+
 /* GS reads the memory pointed at in a specific ordering. 
  * only use this definition, makes little and big endian systems
  * work fine, in conjunction with MAKE_ID */
 /* GS reads the memory pointed at in a specific ordering. 
  * only use this definition, makes little and big endian systems
  * work fine, in conjunction with MAKE_ID */
@@ -1878,3 +1880,13 @@ void BKE_library_filepath_set(Library *lib, const char *filepath)
                BLI_path_abs(lib->filepath, basepath);
        }
 }
                BLI_path_abs(lib->filepath, basepath);
        }
 }
+
+void BKE_id_tag_set_atomic(ID *id, int tag)
+{
+       atomic_fetch_and_or_uint32((uint32_t *)&id->tag, tag);
+}
+
+void BKE_id_tag_clear_atomic(ID *id, int tag)
+{
+       atomic_fetch_and_and_uint32((uint32_t *)&id->tag, ~tag);
+}