spec_list *__deque;
id_tag_t *tag;
@InitVar:
- __deque= new_spec_list();
+ __deque = new_spec_list();
tag = new_id_tag(); // Beginning of available id
+ @Cleanup:
+ if (__deque)
+ free_spec_list(__deque);
+ if (tag)
+ free_id_tag();
@DefineFunc:
tag_elem_t* new_tag_elem(call_id_t id, int data) {
tag_elem_t *e = (tag_elem_t*) CMODEL_MALLOC(sizeof(tag_elem_t));
/**
@Begin
@Interface: Take
- @Commit_point_set: Take_Point1 | Take_Point2 | Take_Point3
+ //@Commit_point_set: Take_Read_Bottom | Take_CAS_Top | Take_Additional_Point
+ @Commit_point_set: Take_Read_Bottom | Take_Additional_Point
@ID: __RET__ == EMPTY ? DEFAULT_CALL_ID : get_id(back(__deque))
@Action:
int _Old_Val = EMPTY;
/**
@Begin
@Interface: Push
- @Commit_point_set: Push_Read_Array | Push_Update_Buffer | Push_Update_Bottom
+ @Commit_point_set: Push_Update_Bottom
@ID: get_and_inc(tag);
@Action:
tag_elem_t *elem = new_tag_elem(__ID__, x);
/**
@Begin
@Interface: Steal
- @Commit_point_set: Steal_Point1 | Steal_Point2 | Steal_Point3
+ //@Commit_point_set: Steal_Read_Bottom | Steal_CAS_Top | Steal_Additional_Point
+ @Commit_point_set: Steal_Read_Bottom | Steal_Additional_Point
@ID: (__RET__ == EMPTY || __RET__ == ABORT) ? DEFAULT_CALL_ID : get_id(front(__deque))
@Action:
int _Old_Val = EMPTY;