From 9f0080e53da7ad68f501ac28b1ff26da8b95ed75 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Fri, 20 Nov 2020 20:21:06 +0000 Subject: [HICN-658] Improve memif connector. Signed-off-by: Mauro Sardara Change-Id: Ie3b48148dcb3f782a1ca906a5ba59d605f17f93e Signed-off-by: Mauro Sardara --- hicn-plugin/vapi/vapi_safe.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'hicn-plugin/vapi/vapi_safe.c') diff --git a/hicn-plugin/vapi/vapi_safe.c b/hicn-plugin/vapi/vapi_safe.c index c1d66c0ac..bd9cfe61c 100644 --- a/hicn-plugin/vapi/vapi_safe.c +++ b/hicn-plugin/vapi/vapi_safe.c @@ -7,21 +7,21 @@ #define RESPONSE_QUEUE_SIZE 2 pthread_mutex_t *mutex = NULL; -vapi_ctx_t g_vapi_ctx_instance = NULL; u32 count = 0; int lock = 0; vapi_error_e vapi_connect_safe(vapi_ctx_t *vapi_ctx_ret, int async) { vapi_error_e rv = VAPI_OK; + vapi_ctx_t g_vapi_ctx_instance = NULL; while (!__sync_bool_compare_and_swap(&lock, 0, 1)); - if (!g_vapi_ctx_instance && !mutex) - { - rv = vapi_ctx_alloc(&g_vapi_ctx_instance); - if (rv != VAPI_OK) - goto err; + rv = vapi_ctx_alloc(&g_vapi_ctx_instance); + if (rv != VAPI_OK) + goto err; + if (!mutex) + { mutex = malloc(sizeof(pthread_mutex_t)); if (!mutex) goto err_mutex_alloc; @@ -49,11 +49,11 @@ vapi_error_e vapi_connect_safe(vapi_ctx_t *vapi_ctx_ret, int async) { while (!__sync_bool_compare_and_swap(&lock, 1, 0)); return rv; - err_vapi: - vapi_ctx_free(g_vapi_ctx_instance); err_mutex_init: free(mutex); err_mutex_alloc: + err_vapi: + vapi_ctx_free(g_vapi_ctx_instance); err: while (!__sync_bool_compare_and_swap(&lock, 1, 0)); return VAPI_ENOMEM; -- cgit 1.2.3-korg