- void write(Type *new_data) {
- while (true) {
- Type *prev = _data.load(memory_order_acquire);
- if (_data.compare_exchange_weak(prev, new_data,
- memory_order_release, memory_order_release)) {
- /**
- @Begin
- @Commit_point_check_define: __ATOMIC_RET__ == true
- @Label: Write_Success_Point
- @End
- */
- break;
- }
- }
- }
-};
+
+ thrd_t t1, t2;
+ Data *data_init = (Data*) malloc(sizeof(Data));
+ data_init->data1 = 1;
+ data_init->data2 = 2;
+ data_init->data3 = 3;
+ write(data_init);
+
+ thrd_create(&t1, threadA, NULL);
+ thrd_create(&t2, threadB, NULL);
+
+ thrd_join(t1);
+ thrd_join(t2);
+
+ return 0;
+}