rculfhash: approximation can be negative
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 21 Sep 2011 14:50:58 +0000 (10:50 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 21 Sep 2011 14:50:58 +0000 (10:50 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
rculfhash.c
tests/test_urcu_hash.c
urcu/rculfhash.h

index 359de13c82cb427a691fae8645da3adf4c5f1b08..cd25d336aea3ef781456c046699ef86e2de81b92 100644 (file)
@@ -1452,10 +1452,10 @@ int cds_lfht_destroy(struct cds_lfht *ht, pthread_attr_t **attr)
 }
 
 void cds_lfht_count_nodes(struct cds_lfht *ht,
-               unsigned long *approx_before,
+               long *approx_before,
                unsigned long *count,
                unsigned long *removed,
-               unsigned long *approx_after)
+               long *approx_after)
 {
        struct cds_lfht_node *node, *next;
        struct _cds_lfht_node *lookup;
index d2dd4889f70d45361a6a88c84efea516f13cece8..600b1f973f6ec997f4cd51a90771b7e36dda9077 100644 (file)
@@ -397,7 +397,8 @@ void *thr_count(void *arg)
        rcu_register_thread();
 
        for (;;) {
-               unsigned long count, removed, approx_before, approx_after;
+               unsigned long count, removed;
+               long approx_before, approx_after;
                ssize_t len;
                char buf[1];
 
@@ -416,12 +417,12 @@ void *thr_count(void *arg)
                                &approx_after);
                rcu_read_unlock();
                printf("done.\n");
-               printf("Approximation before node accounting: %lu nodes.\n",
+               printf("Approximation before node accounting: %ld nodes.\n",
                        approx_before);
                printf("Accounting of nodes in the hash table: "
                        "%lu nodes + %lu logically removed.\n",
                        count, removed);
-               printf("Approximation after node accounting: %lu nodes.\n",
+               printf("Approximation after node accounting: %ld nodes.\n",
                        approx_after);
        }
        rcu_unregister_thread();
@@ -672,7 +673,8 @@ int main(int argc, char **argv)
        struct wr_count *count_writer;
        unsigned long long tot_reads = 0, tot_writes = 0,
                tot_add = 0, tot_add_exist = 0, tot_remove = 0;
-       unsigned long count, removed, approx_before, approx_after;
+       unsigned long count, removed;
+       long approx_before, approx_after;
        int i, a, ret;
        struct sigaction act;
        unsigned int remain;
@@ -936,12 +938,12 @@ int main(int argc, char **argv)
                &approx_after);
        printf("done.\n");
        if (count || removed) {
-               printf("Approximation before node accounting: %lu nodes.\n",
+               printf("Approximation before node accounting: %ld nodes.\n",
                        approx_before);
                printf("WARNING: nodes left in the hash table upon destroy: "
                        "%lu nodes + %lu logically removed.\n",
                        count, removed);
-               printf("Approximation after node accounting: %lu nodes.\n",
+               printf("Approximation after node accounting: %ld nodes.\n",
                        approx_after);
        }
        ret = cds_lfht_destroy(test_ht, NULL);
index 1c1f03b51d904d3aab6c9e50c8e7aa8f47d47c2f..4a897faea7c8f52092d4e4aeded78f1c65511ffa 100644 (file)
@@ -165,10 +165,10 @@ int cds_lfht_destroy(struct cds_lfht *ht, pthread_attr_t **attr);
  * Call with rcu_read_lock held.
  */
 void cds_lfht_count_nodes(struct cds_lfht *ht,
-               unsigned long *approx_before,
+               long *approx_before,
                unsigned long *count,
                unsigned long *removed,
-               unsigned long *approx_after);
+               long *approx_after);
 
 /*
  * cds_lfht_lookup - lookup a node by key.
This page took 0.028183 seconds and 4 git commands to generate.