map = spec_hashtable<TypeK, TypeV*>();
id_map = spec_hashtable<TypeK, TypeV*>();
tag = Tag();
- @DefineFunc:
static bool equals_val(TypeV *ptr1, TypeV *ptr2) {
// ...
}
@Commit_point_set: Read_Val_Point1 | Read_Val_Point2 | Read_Val_Point3
@ID: __sequential.getKeyTag(key)
@Action:
- @DefineVar: TypeV *_Old_Val = __sequential.map.get(key)
+ TypeV *_Old_Val = __sequential.map.get(key)
@Post_check:
__sequential.equals_val(_Old_Val, __RET__)
@End
@ID: __sequential.getKeyTag(key)
@Action:
# Remember this old value at checking point
- @DefineVar: TypeV *_Old_Val = __sequential.map.get(key)
- @Code: __sequential.map.put(key, &val);
+ TypeV *_Old_Val = __sequential.map.get(key)
+ __sequential.map.put(key, &val);
@Post_check:
__sequential.equals_val(__RET__, _Old_Val)
@End
COND_PutIfAbsentSucc :: __RET__ == NULL
@ID: __sequential.getKeyTag(key)
@Action:
- @DefineVar: TypeV *_Old_Val = __sequential.map.get(key)
- @Code:
+ TypeV *_Old_Val = __sequential.map.get(key)
if (__COND_SAT__)
__sequential.map.put(key, &value);
@Post_check:
@Commit_point_set: Write_Val_Point
@ID: __sequential.getKeyTag(key)
@Action:
- @DefineVar: TypeV *_Old_Val = __sequential.map.get(key)
- @Code: __sequential.map.put(key, NULL);
+ TypeV *_Old_Val = __sequential.map.get(key)
+ __sequential.map.put(key, NULL);
@Post_check:
__sequential.equals_val(__RET__, _Old_Val)
@End
COND_RemoveIfMatchSucc :: __RET__ == true
@ID: __sequential.getKeyTag(key)
@Action:
- @Code:
- if (__COND_SAY__)
+ if (__COND_SAT__)
__sequential.map.put(key, NULL);
@Post_check:
- __COND_SAY__ ? __RET__ : !__RET__
+ __COND_SAT__ ? __RET__ : !__RET__
@End
*/
bool remove(TypeK& key, TypeV& val) {
Write_Val_Point
@ID: __sequential.getKeyTag(key)
@Action:
- @DefineVar: TypeV *_Old_Val = __sequential.map.get(key)
+ TypeV *_Old_Val = __sequential.map.get(key)
@Post_check:
__sequential.equals_val(__RET__, _Old_Val)
@End
COND_ReplaceIfMatchSucc :: __RET__ == true
@ID: __sequential.getKeyTag(key)
@Action:
- @Code:
- if (__COND_SAY__)
+ if (__COND_SAT__)
__sequential.map.put(key, &newval);
@Post_check:
- __COND_SAY__ ? __RET__ : !__RET__
+ __COND_SAT__ ? __RET__ : !__RET__
@End
*/
bool replace(TypeK& key, TypeV& oldval, TypeV& newval) {