Example #1
0
// remove - determine which bucket; determine if the value
// we want to remove is in that bucket
void remove(Hashtable* h, Hashkey key, void* data) {
	int index = hash(key, h->num_buckets);
	List *bucket = h->buckets[index];
	if (bucket != NULL) {
		removeIfExists(bucket, data);
	}
}
void ThinBlockManager::finishBlock(const uint256& h) {
    CBlock block;
    try {
        block = builders[h].builder.finishBlock();
    }
    catch (thinblock_error& e) {
        LogPrintf("%s\n", e.what());
        assert(!"FIXME: Handle finishBlock failing");
    }

    typedef std::set<ThinBlockWorker*>::iterator auto_;
    std::vector<NodeId> peers;
    std::set<ThinBlockWorker*> workers = builders[h].workers;
    for (auto_ w = workers.begin(); w != workers.end(); ++w)
        peers.push_back((*w)->nodeID());

    removeIfExists(h);
    ThinBlockFinishedCallb& callb = *finishedCallb;
    callb(block, peers);
}