}
void expireFlows(Hashtable* ht) {	uint32_t now = time(0);	int i;		/* check each hash bucket's spill chain */	for (i = 0; i < ht->bucketCount; i++) if (ht->bucket[i] != 0) {		HashBucket* bucket = ht->bucket[i];		HashBucket* pred = 0;				/* iterate over spill chain */		while (bucket != 0) {			HashBucket* nextBucket = bucket->next;			if ((now > bucket->expireTime) || (now > bucket->forceExpireTime)) {				if (now > bucket->expireTime) debug("normal expiry");				if (now > bucket->forceExpireTime) debug("forced expiry");								exportBucket(ht, bucket);				destroyBucket(ht, bucket);				if (pred) {					pred->next = nextBucket;					} else {					ht->bucket[i] = nextBucket;					}				} else {				pred = bucket;				}			bucket = nextBucket;			}		}	}