From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id E26F27EE4B for ; Tue, 1 Oct 2013 05:33:07 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of ivg@ieee.org) identity=pra; client-ip=209.85.217.169; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="ivg@ieee.org"; x-sender="ivg@ieee.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of ivg@ieee.org designates 209.85.217.169 as permitted sender) identity=mailfrom; client-ip=209.85.217.169; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="ivg@ieee.org"; x-sender="ivg@ieee.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-lb0-f169.google.com) identity=helo; client-ip=209.85.217.169; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="ivg@ieee.org"; x-sender="postmaster@mail-lb0-f169.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmUBAMhBSlLRVdmpm2dsb2JhbABagz+De71agTQWDgEBAQEBBgsLCRQogiUBAQQBIwRSBQsLGgIFIQICDwEEIAEFASITiAAGBAieYYwBkj4EgSmOKAeCaoE4A4kzjkyQD0GEUg X-IPAS-Result: AmUBAMhBSlLRVdmpm2dsb2JhbABagz+De71agTQWDgEBAQEBBgsLCRQogiUBAQQBIwRSBQsLGgIFIQICDwEEIAEFASITiAAGBAieYYwBkj4EgSmOKAeCaoE4A4kzjkyQD0GEUg X-IronPort-AV: E=Sophos;i="4.90,1011,1371074400"; d="scan'208";a="34992944" Received: from mail-lb0-f169.google.com ([209.85.217.169]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 01 Oct 2013 05:33:06 +0200 Received: by mail-lb0-f169.google.com with SMTP id z5so5434373lbh.0 for ; Mon, 30 Sep 2013 20:33:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type :content-transfer-encoding; bh=JCA1c5k/u3FZvk+Ioh1bHgb8iUXEokWbn27mtW2wQBs=; b=TcET9VDMf9Q26GqLkuEG80s9tPYh5tP7eZmE0QMoSqkuvyf51qaJ0IlIdjZ3sm8agH Dh9QanrSBw26Gn4tBQpqF+OuvnobjqVhhsN0sNXANXoiJgFVJq/c0f6Iw9Qek5z7gBgz RcPQqeSv0aBDL2Ki2d2uuheBf/JfmHy0znDI4w5olMjFzctjVvqcLfyAIt3hpHf3N7bh 4COMcK13HbY+tHOfKH15sw1x6JFw3FeT/1uh9iXWiy5QyUQtxWfCfF6U7RSsZ/Fif5A0 pDV3QOplZN/mXqh2LQAUh/XCOrGforbcLvUQtuvNhFxxatHtJ5EB+LYLXTX82xJiL63Z wezg== X-Gm-Message-State: ALoCoQkKVGuoRU5E3ys3kGSrNwJYQgPWgWUYkg8z/ifI10Rv1mqBFCqm5Gkr1NtrZSNlpWtL1QWO X-Received: by 10.112.29.147 with SMTP id k19mr25290362lbh.9.1380598386397; Mon, 30 Sep 2013 20:33:06 -0700 (PDT) Received: from golf.niidar.ru.niidar.ru ([109.188.125.228]) by mx.google.com with ESMTPSA id o1sm3071638lah.8.1969.12.31.16.00.00 (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Mon, 30 Sep 2013 20:33:05 -0700 (PDT) From: Ivan Gotovchits To: Romain Bardou Cc: Tom Ridge , caml-list , Benedikt Grundmann References: <52455D91.6000304@inria.fr> <52493343.7020509@inria.fr> Date: Tue, 01 Oct 2013 07:32:59 +0400 In-Reply-To: <52493343.7020509@inria.fr> (Romain Bardou's message of "Mon, 30 Sep 2013 10:16:03 +0200") Message-ID: <87ioxhvf6c.fsf@golf.niidar.ru> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] Thread behaviour Romain Bardou writes: > It happens I implemented a library to handle messaging between > possibly-distributed OCaml processes myself. Well, for now one can only > send one message and receive one message: the goal is to be able to run > a function 'a -> 'b in another process, given marshaling functions for > 'a and 'b and exceptions. I do plan to add the possibility of sending > more "intermediate" messages (I need it). It works on Linux and Windows. > > I did not do any official release yet, but you can have a look here: > > https://github.com/cryptosense/procord > And it happens that I implemented yet another such library. It is in a heavy use and battle tested in a commercial product, but it is not yet released, and may have some hidden bugs. Also it doesn't work on Windows (it uses fork, pipes and AF_UNIX sockets). The main idea behind the library is to play the same role for Lwt, as Async_parallel plays for Async. Forking with lwt (or any other async framework) is not an easy stuff, but it is doable. The second goal I pursued is to make its interface as simple as possible. Task can be created as easy, as =C2=ABParallel.run (print_endline "Hello, world")=C2=BB. I hope I will release it at the beginning of the next year. --=20 (__)=20 (oo)=20 /------\/=20 / | ||=20=20=20 * /\---/\=20 ~~ ~~=20=20=20 ...."Have you mooed today?"...