rculfhash: Relax atomicity guarantees required by removal operation
[urcu.git] / urcu / rculfhash.h
index c03baf41a2b8405fda996ddb633a250a8bcdd89a..647592b9cf05654598dc76f1867a0455fb1eaac6 100644 (file)
@@ -39,8 +39,8 @@ extern "C" {
  * cds_lfht_node: Contains the next pointers and reverse-hash
  * value required for lookup and traversal of the hash table.
  *
- * struct cds_lfht_node should be aligned on 4-bytes boundaries because
- * the two lower bits are used as flags.
+ * struct cds_lfht_node should be aligned on 8-bytes boundaries because
+ * the three lower bits are used as flags.
  *
  * struct cds_lfht_node can be embedded into a structure (as a field).
  * caa_container_of() can be used to get the structure from the struct
@@ -53,7 +53,7 @@ extern "C" {
 struct cds_lfht_node {
        struct cds_lfht_node *next;     /* ptr | BUCKET_FLAG | REMOVED_FLAG */
        unsigned long reverse_hash;
-} __attribute__((aligned(4)));
+} __attribute__((aligned(8)));
 
 /* cds_lfht_iter: Used to track state while traversing a hash chain. */
 struct cds_lfht_iter {
@@ -105,6 +105,8 @@ struct cds_lfht_mm_type {
 };
 
 extern const struct cds_lfht_mm_type cds_lfht_mm_order;
+extern const struct cds_lfht_mm_type cds_lfht_mm_chunk;
+extern const struct cds_lfht_mm_type cds_lfht_mm_mmap;
 
 /*
  * _cds_lfht_new - API used by cds_lfht_new wrapper. Do not use directly.
@@ -152,7 +154,7 @@ struct cds_lfht *cds_lfht_new(unsigned long init_size,
                        pthread_attr_t *attr)
 {
        return _cds_lfht_new(init_size, min_nr_alloc_buckets, max_nr_buckets,
-                       flags, &cds_lfht_mm_order, &rcu_flavor, attr);
+                       flags, NULL, &rcu_flavor, attr);
 }
 
 /*
This page took 0.024436 seconds and 4 git commands to generate.