break;
while((srcObj = mhashSearch(oid)) == NULL) {
int ret;
-// printf("HERE!!\n");
if((ret = sched_yield()) != 0) {
printf("%s(): error no %d in thread yield\n", __func__, errno);
}
version = *((unsigned short *)(buffer+size));
size += sizeof(unsigned short);
threadid = *((unsigned int *)(buffer+size));
- printf("Calling threadNotify\n");
threadNotify(oid,version,threadid);
free(buffer);
break;
int size = 0;
GETSIZE(size, header);
size += sizeof(objheader_t);
+ //printf("%s() DEBUG: oid= %u, type= %u\n", __func__, OID(header), TYPE(header));
+ //fflush(stdout);
memcpy(objs+offset, header, size);
offset += size;
}
*numBytes += size;
/* Send TRANS_DISAGREE to Coordinator */
*control = TRANS_DISAGREE;
- //printf("%s() oid = %d, type = %d\t", __func__, OID(mobj), TYPE((objheader_t *)mobj));
+ //printf("%s() DEBUG: acquire lock, modified, oid = %d, type = %d\n", __func__, OID(mobj), TYPE((objheader_t *)mobj));
}
//Keep track of oid locked
oidlocked[(*objlocked)++] = OID(((objheader_t *)mobj));
if (version == ((objheader_t *)mobj)->version) { /* Check if versions match */
(*v_matchlock)++;
*control = TRANS_SOFT_ABORT;
+ //printf("%s() DEBUG: soft abort, oid = %d, type = %d\n", __func__, OID(mobj), TYPE((objheader_t *)mobj));
} else { /* If versions don't match ...HARD ABORT */
(*v_nomatch)++;
oidvernotmatch[*objvernotmatch] = oid;
size += sizeof(objheader_t);
*numBytes += size;
*control = TRANS_DISAGREE;
- //printf("%s() oid = %d, type = %d\t", __func__, OID(mobj), TYPE((objheader_t *)mobj));
+ //printf("%s() DEBUG: modified, couldn't get lock oid = %d, type = %d\n", __func__, OID(mobj), TYPE((objheader_t *)mobj));
}
}
}
/* Send TRANS_DISAGREE to Coordinator */
*control = TRANS_DISAGREE;
+ //printf("%s() DEBUG: read, lock aquired, oid = %d, type = %d\n", __func__, OID(mobj), TYPE((objheader_t *)mobj));
}
//Keep track of oid locked
if (version == ((objheader_t *)mobj)->version) { /* Check if versions match */
(*v_matchlock)++;
*control = TRANS_SOFT_ABORT;
+ //printf("%s() DEBUG: soft abort, read oid = %d, type = %d\n", __func__, OID(mobj), TYPE((objheader_t *)mobj));
} else { /* If versions don't match ...HARD ABORT */
(*v_nomatch)++;
oidvernotmatch[*objvernotmatch] = oid;
size += sizeof(objheader_t);
*numBytes += size;
*control = TRANS_DISAGREE;
+ //printf("%s() DEBUG: read, couldn't aquire lock, oid = %d, type = %d\n", __func__, OID(mobj), TYPE((objheader_t *)mobj));
}
}
}