int set_contains(intset_t *set, val_t val, int transactional) { int result = 0; void *v; v = (void *)val; switch(transactional) { case 0: result = rbtree_contains(set, v); break; case 1: /* Normal transaction */ TX_START(NL); result = TMrbtree_contains(set, (void *)val); TX_END; break; case 2: case 3: case 4: /* Elastic transaction */ TX_START(EL); result = TMrbtree_contains(set, (void *)val); TX_END; break; default: result=0; printf("number %d do not correspond to elasticity.\n", transactional); exit(1); } return result; }
int set_contains(intset_t *set, intptr_t val, tx_desc *tx) { int res = 0; START_RO_ID(2); res = TMrbtree_contains(tx, set, val); COMMIT; return res; }
static int set_contains(intset_t *set, val_t val, thread_data_t *td) { int result; # ifdef DEBUG printf("++> set_contains(%d)\n", val); IO_FLUSH; # endif if (!td) { result = rbtree_contains((rbtree_t *)set, (void *)val); } else { TM_START(0, RO); result = TMrbtree_contains((rbtree_t *)set, (void *)val); TM_COMMIT; } return result; }