From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Wingo Subject: Re: [GSoC] Development of Cuirass. Date: Mon, 13 Mar 2017 11:32:47 +0100 Message-ID: <87d1dlv54g.fsf@igalia.com> References: <87tw6yim7o.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54995) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnNHg-000759-0g for guix-devel@gnu.org; Mon, 13 Mar 2017 06:33:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnNHc-0007zO-SZ for guix-devel@gnu.org; Mon, 13 Mar 2017 06:33:00 -0400 In-Reply-To: <87tw6yim7o.fsf@gnu.org> (Mathieu Lirzin's message of "Sun, 12 Mar 2017 15:49:47 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Mathieu Lirzin Cc: guix-devel@gnu.org On Sun 12 Mar 2017 15:49, Mathieu Lirzin writes: > Here is my proposal for the Google Summer of Code 2017. Looks great to me. FWIW I think you may want to use Fibers in Cuirass. Sometimes a web API request might need to "fork" off a number of tasks, and Fibers lets you do that pretty easily, and provides nice communications mechanisms for inter-fiber communication like channels and condition variables. It also prevents one long API request from starving other API users. Also its abstractions are thread-safe, and it enables parallel speedups by using all available cores. Right now Fibers doesn't have explicit support for subprocess events like child-died, etc, though it can do concurrent access to multiple pipes at once. So there's some work to do here. A reference: https://github.com/wingo/fibers/wiki/Manual Specifically see the "web server" notes in the Examples section. Fibers is in Guix as "guile-fibers". Happy hacking, Andy