Fixes this coverity issue:
*** CID
1375952: Error handling issues (CHECKED_RETURN)
/src/rculfhash.c: 1950 in cds_lfht_resize()
1944 }
1945
1946 void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size)
1947 {
1948 resize_target_update_count(ht, new_size);
1949 CMM_STORE_SHARED(ht->resize_initiated, 1);
>>> CID
1375952: Error handling issues (CHECKED_RETURN)
>>> Calling "pthread_mutex_lock" without checking return value (as is done elsewhere 44 out of 50 times).
1950 pthread_mutex_lock(&ht->resize_mutex);
1951 _do_cds_lfht_resize(ht);
1952 pthread_mutex_unlock(&ht->resize_mutex);
1953 }
1954
1955 static
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
void cds_lfht_resize_lazy_count(struct cds_lfht *ht, unsigned long size,
unsigned long count);
void cds_lfht_resize_lazy_count(struct cds_lfht *ht, unsigned long size,
unsigned long count);
+static void mutex_lock(pthread_mutex_t *mutex)
+{
+ int ret;
+
+#ifndef DISTRUST_SIGNALS_EXTREME
+ ret = pthread_mutex_lock(mutex);
+ if (ret)
+ urcu_die(ret);
+#else /* #ifndef DISTRUST_SIGNALS_EXTREME */
+ while ((ret = pthread_mutex_trylock(mutex)) != 0) {
+ if (ret != EBUSY && ret != EINTR)
+ urcu_die(ret);
+ if (CMM_LOAD_SHARED(URCU_TLS(rcu_reader).need_mb)) {
+ cmm_smp_mb();
+ _CMM_STORE_SHARED(URCU_TLS(rcu_reader).need_mb, 0);
+ cmm_smp_mb();
+ }
+ (void) poll(NULL, 0, 10);
+ }
+#endif /* #else #ifndef DISTRUST_SIGNALS_EXTREME */
+}
+
+static void mutex_unlock(pthread_mutex_t *mutex)
+{
+ int ret;
+
+ ret = pthread_mutex_unlock(mutex);
+ if (ret)
+ urcu_die(ret);
+}
+
static long nr_cpus_mask = -1;
static long split_count_mask = -1;
static int split_count_order = -1;
static long nr_cpus_mask = -1;
static long split_count_mask = -1;
static int split_count_order = -1;
{
resize_target_update_count(ht, new_size);
CMM_STORE_SHARED(ht->resize_initiated, 1);
{
resize_target_update_count(ht, new_size);
CMM_STORE_SHARED(ht->resize_initiated, 1);
- pthread_mutex_lock(&ht->resize_mutex);
+ mutex_lock(&ht->resize_mutex);
- pthread_mutex_unlock(&ht->resize_mutex);
+ mutex_unlock(&ht->resize_mutex);
struct cds_lfht *ht = resize_work->ht;
ht->flavor->register_thread();
struct cds_lfht *ht = resize_work->ht;
ht->flavor->register_thread();
- pthread_mutex_lock(&ht->resize_mutex);
+ mutex_lock(&ht->resize_mutex);
- pthread_mutex_unlock(&ht->resize_mutex);
+ mutex_unlock(&ht->resize_mutex);
ht->flavor->unregister_thread();
poison_free(work);
}
ht->flavor->unregister_thread();
poison_free(work);
}
__cds_lfht_resize_lazy_launch(ht);
}
__cds_lfht_resize_lazy_launch(ht);
}
-static void mutex_lock(pthread_mutex_t *mutex)
-{
- int ret;
-
-#ifndef DISTRUST_SIGNALS_EXTREME
- ret = pthread_mutex_lock(mutex);
- if (ret)
- urcu_die(ret);
-#else /* #ifndef DISTRUST_SIGNALS_EXTREME */
- while ((ret = pthread_mutex_trylock(mutex)) != 0) {
- if (ret != EBUSY && ret != EINTR)
- urcu_die(ret);
- if (CMM_LOAD_SHARED(URCU_TLS(rcu_reader).need_mb)) {
- cmm_smp_mb();
- _CMM_STORE_SHARED(URCU_TLS(rcu_reader).need_mb, 0);
- cmm_smp_mb();
- }
- (void) poll(NULL, 0, 10);
- }
-#endif /* #else #ifndef DISTRUST_SIGNALS_EXTREME */
-}
-
-static void mutex_unlock(pthread_mutex_t *mutex)
-{
- int ret;
-
- ret = pthread_mutex_unlock(mutex);
- if (ret)
- urcu_die(ret);
-}
-
static void cds_lfht_before_fork(void *priv)
{
if (cds_lfht_workqueue_atfork_nesting++)
static void cds_lfht_before_fork(void *priv)
{
if (cds_lfht_workqueue_atfork_nesting++)