]> git.droids-corp.org - dpdk.git/blobdiff - lib/librte_vhost/fd_man.c
net/ice/base: fix uninitialized stack variables
[dpdk.git] / lib / librte_vhost / fd_man.c
index 38347ab1d78536c9cad6b5f333be70fcd8677729..55d4856f9ea95a70ae550d8a5ebef7b021533e4a 100644 (file)
@@ -129,7 +129,9 @@ fdset_add(struct fdset *pfdset, int fd, fd_cb rcb, fd_cb wcb, void *dat)
        pthread_mutex_lock(&pfdset->fd_mutex);
        i = pfdset->num < MAX_FDS ? pfdset->num++ : -1;
        if (i == -1) {
+               pthread_mutex_lock(&pfdset->fd_pooling_mutex);
                fdset_shrink_nolock(pfdset);
+               pthread_mutex_unlock(&pfdset->fd_pooling_mutex);
                i = pfdset->num < MAX_FDS ? pfdset->num++ : -1;
                if (i == -1) {
                        pthread_mutex_unlock(&pfdset->fd_mutex);
@@ -246,7 +248,9 @@ fdset_event_dispatch(void *arg)
                numfds = pfdset->num;
                pthread_mutex_unlock(&pfdset->fd_mutex);
 
+               pthread_mutex_lock(&pfdset->fd_pooling_mutex);
                val = poll(pfdset->rwfds, numfds, 1000 /* millisecs */);
+               pthread_mutex_unlock(&pfdset->fd_pooling_mutex);
                if (val < 0)
                        continue;