Exemple #1
0
void Row_ts::buffer_req(TsType type, txn_man * txn, row_t * row)
{
	TsReqEntry * req_entry = get_req_entry();
	assert(req_entry != NULL);
	req_entry->txn = txn;
	req_entry->row = row;
	req_entry->ts = txn->get_ts();
	if (type == R_REQ) {
		req_entry->next = readreq;
		readreq = req_entry;
		if (req_entry->ts < min_rts)
			min_rts = req_entry->ts;
	} else if (type == W_REQ) {
		assert(row != NULL);
		req_entry->next = writereq;
		writereq = req_entry;
		if (req_entry->ts < min_wts)
			min_wts = req_entry->ts;
	} else if (type == P_REQ) {
		preq_len ++;
		req_entry->next = prereq;
		prereq = req_entry;
		if (req_entry->ts < min_pts)
			min_pts = req_entry->ts;
	}
}
void add_req_entry_if_not_found(const uint8_t* mac, const char* ifname, const uint32_t expiresAt) 
{
	struct cache_req_entry* entry = get_req_entry(mac, ifname);
	if (entry == NULL) {
		add_req_entry(mac, ifname, expiresAt);
	} else {
		entry->expiresAt = expiresAt;
	}
}
Exemple #3
0
void Row_mvcc::buffer_req(TsType type, TxnManager * txn)
{
	MVReqEntry * req_entry = get_req_entry();
	assert(req_entry != NULL);
	req_entry->txn = txn;
	req_entry->ts = txn->get_timestamp();
	req_entry->starttime = get_sys_clock();
	if (type == R_REQ) {
		rreq_len ++;
		STACK_PUSH(readreq_mvcc, req_entry);
	} else if (type == P_REQ) {
		preq_len ++;
		STACK_PUSH(prereq_mvcc, req_entry);
	}
}
void* get_req_entry_wrp(const uint8_t* mac, const char* ifname) {
	return get_req_entry(mac, ifname);
}