On 6/17/2015 12:17 PM, Tetsuya Mukawa wrote:
> 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.
When we unregister a server at index x,  we will move the server at the
tail of the array to the location x.
> So I have a question about below case.
>
> Step1. socket0 is registered.
> Step2: scoekt1 is registered.
> Step3. socket0 is unregistered.
When socket0 is unregistered, socket1  will be moved to location at index 0.
> Step4. socket2 is registered.
socket2 is registered at index 1.
>
> After above steps, are socket1 and socket2 still registered?
>
> Thanks,
> Tetsuya
>
>
What is your concern here?

Reply via email to