On 2015/06/02 10:50, Huawei Xie wrote:
> rte_vhost_driver_unregister will remove the listenfd from event list, and 
> then close it.
>
> Signed-off-by: Huawei Xie <huawei.xie at intel.com>
> Signed-off-by: Peng Sun <peng.a.sun at intel.com>
> ---
>  
> +/**
> + * Unregister the specified vhost server
> + */
> +int
> +rte_vhost_driver_unregister(const char *path)
> +{
> +     int i;
> +     int count;
> +
> +     pthread_mutex_lock(&g_vhost_server.server_mutex);
> +
> +     for (i = 0; i < g_vhost_server.vserver_cnt; i++) {
> +             if (!strcmp(g_vhost_server.server[i]->path, path)) {
> +                     fdset_del(&g_vhost_server.fdset,
> +                             g_vhost_server.server[i]->listenfd);
> +
> +                     close(g_vhost_server.server[i]->listenfd);
> +                     free(g_vhost_server.server[i]->path);
> +                     free(g_vhost_server.server[i]);
> +
> +                     unlink(path);
> +
> +                     count = --g_vhost_server.vserver_cnt;
> +                     g_vhost_server.server[i] =
> +                             g_vhost_server.server[count];
> +                     g_vhost_server.server[count] =
> +                             NULL;
> +                     pthread_mutex_unlock(&g_vhost_server.server_mutex);
> +
> +                     return 0;
> +             }
> +     }
> +     pthread_mutex_unlock(&g_vhost_server.server_mutex);
> +
> +     return -1;
> +}
> +
>

Hi Xie,

It seems vserver_cnt is incremented when socket is registered, and
decremented when unregistered.
And this value is used for index value of g_vhost_server.server[ ], when
a new socket is registered.
So I have a question about below case.

Step1. socket0 is registered.
Step2: scoekt1 is registered.
Step3. socket0 is unregistered.
Step4. socket2 is registered.

After above steps, are socket1 and socket2 still registered?

Thanks,
Tetsuya

Reply via email to