X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Frculfhash-internal.h;h=325e55bed31a920ae7f27ef08343707ee6379163;hb=b047e7a793421e3ff1f5dca2b27c72751a1f4db4;hp=d7cec95a10e286f4693c91925e61441146196ebe;hpb=6893800a4d1cc14dff0395ddcd660a5138db183d;p=userspace-rcu.git diff --git a/src/rculfhash-internal.h b/src/rculfhash-internal.h index d7cec95..325e55b 100644 --- a/src/rculfhash-internal.h +++ b/src/rculfhash-internal.h @@ -24,8 +24,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include +#include + +#include "workqueue.h" #ifdef DEBUG #define dbg_printf(fmt, args...) printf("[debug rculfhash] " fmt, ## args) @@ -80,11 +84,13 @@ struct cds_lfht { * therefore cause grace-period deadlock if we hold off RCU G.P. * completion. */ - pthread_mutex_t resize_mutex; /* resize mutex: add/del mutex */ - pthread_attr_t *resize_attr; /* Resize threads attributes */ - unsigned int in_progress_resize, in_progress_destroy; + pthread_mutex_t resize_mutex; /* resize mutex: add/del mutex */ + pthread_attr_t *caller_resize_attr; /* resize threads attributes from lfht_new caller */ + pthread_attr_t resize_attr; + unsigned int in_progress_destroy; unsigned long resize_target; int resize_initiated; + struct urcu_work destroy_work; /* * Variables needed for add and remove fast-paths. @@ -168,7 +174,7 @@ struct cds_lfht *__default_alloc_cds_lfht( struct cds_lfht *ht; ht = calloc(1, cds_lfht_size); - assert(ht); + urcu_posix_assert(ht); ht->mm = mm; ht->bucket_at = mm->bucket_at;