mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
a little improvement of hashid code: move the calculation of hashcap into the hashid_init function and remove the assertions
This commit is contained in:
@@ -19,12 +19,15 @@ struct hashid {
|
||||
};
|
||||
|
||||
static void
|
||||
hashid_init(struct hashid *hi, int max, int hashcap) {
|
||||
hashid_init(struct hashid *hi, int max) {
|
||||
int i;
|
||||
assert((hashcap & (hashcap-1))==0);
|
||||
hi->cap = max;
|
||||
assert(hi->cap <= hashcap);
|
||||
int hashcap;
|
||||
hashcap = 16;
|
||||
while (hashcap < max) {
|
||||
hashcap *= 2;
|
||||
}
|
||||
hi->hashmod = hashcap - 1;
|
||||
hi->cap = max;
|
||||
hi->count = 0;
|
||||
hi->id = malloc(max * sizeof(struct hashid_node));
|
||||
for (i=0;i<max;i++) {
|
||||
|
||||
@@ -368,11 +368,7 @@ gate_init(struct gate *g , struct skynet_context * ctx, char * parm) {
|
||||
|
||||
g->ctx = ctx;
|
||||
|
||||
int cap = 16;
|
||||
while (cap < max) {
|
||||
cap *= 2;
|
||||
}
|
||||
hashid_init(&g->hash, max, cap);
|
||||
hashid_init(&g->hash, max);
|
||||
g->conn = malloc(max * sizeof(struct connection));
|
||||
memset(g->conn, 0, max *sizeof(struct connection));
|
||||
g->max_connection = max;
|
||||
|
||||
Reference in New Issue
Block a user