From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tetsuya Mukawa Subject: Re: [PATCH] vhost: provide vhost API to unregister vhost unix domain socket Date: Wed, 17 Jun 2015 13:17:11 +0900 Message-ID: <5580F4C7.30604@igel.co.jp> References: <1433209800-29091-1-git-send-email-huawei.xie@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit To: Huawei Xie , dev@dpdk.org Return-path: Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by dpdk.org (Postfix) with ESMTP id D9A56C34A for ; Wed, 17 Jun 2015 06:17:14 +0200 (CEST) Received: by pacgb13 with SMTP id gb13so25850305pac.1 for ; Tue, 16 Jun 2015 21:17:14 -0700 (PDT) In-Reply-To: <1433209800-29091-1-git-send-email-huawei.xie@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 > Signed-off-by: Peng Sun > --- > > +/** > + * 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