From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0WjY-0007fC-Bp for qemu-devel@nongnu.org; Mon, 05 Sep 2011 06:49:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R0WjU-00034E-A2 for qemu-devel@nongnu.org; Mon, 05 Sep 2011 06:48:56 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36804) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0WjT-00034A-VW for qemu-devel@nongnu.org; Mon, 05 Sep 2011 06:48:52 -0400 Date: Mon, 5 Sep 2011 13:47:00 +0300 From: Alon Levy Message-ID: <20110905104700.GN27006@bow> References: <1314976794-31931-1-git-send-email-kraxel@redhat.com> <4E633A37.40208@redhat.com> <4E649033.2040105@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E649033.2040105@redhat.com> Subject: Re: [Qemu-devel] [Spice-devel] [PATCH] server: don't call reds_stream_free from worker thread context List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: Yonit Halperin , qemu-devel@nongnu.org, spice-devel@freedesktop.org On Mon, Sep 05, 2011 at 11:02:43AM +0200, Gerd Hoffmann wrote: > Hi, > > >Hi, > >RED_WORKER_MESSAGE_DISPLAY_DISCONNECT is not the only place that > >triggers red_disconnect_channel (and as a result, > >reds_stream_free(dispatcher->stream)). red_disconnect_channel is called > >also when there is an error upon receive/send and also when timeouts > >related to the client occur (e.g., in flush_display_commands). > > Ok. > > >We probably better make the dispatcher bi-directional, i.e., not only > >push messages to the worker, but also listen. > > That sounds like a non-trivial thing. > > What does the master branch here btw? I had a brief look and saw > that the code looks quite different here (probably due to the > multiclient work). > I verified it still calls reds_stream_free from the worker thread, only now the call itself is done in red_channel.c (via red_channel_disconnect or something like that), which is called from red_worker.c > cheers, > Gerd > _______________________________________________ > Spice-devel mailing list > Spice-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/spice-devel