From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 5032E7EEF6 for ; Tue, 16 Jun 2015 17:09:43 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of dhouse@janestreet.com) identity=pra; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="dhouse@janestreet.com"; x-sender="dhouse@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of dhouse@janestreet.com designates 38.105.200.112 as permitted sender) identity=mailfrom; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="dhouse@janestreet.com"; x-sender="dhouse@janestreet.com"; 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@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="dhouse@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DXAQCyO4BVnHDIaSZbgkWBfgaDGMJkAoE4B0wBAQEBAQESAQEBAQEGFglPhCMBAQMBEhEEGQEBNwEECwkCCy0KAgIhARIBBQEcBhMIGod4AwoIA5kkkGs+MYpPcIRkAQWMPw2FOQEBAQEBAQEDAQEBAQEBAQEUBgqLOoJNgW5LB4JogUWTZIlkgWGRAoVMEiOBFYQgboEDJIEgAQEB X-IPAS-Result: A0DXAQCyO4BVnHDIaSZbgkWBfgaDGMJkAoE4B0wBAQEBAQESAQEBAQEGFglPhCMBAQMBEhEEGQEBNwEECwkCCy0KAgIhARIBBQEcBhMIGod4AwoIA5kkkGs+MYpPcIRkAQWMPw2FOQEBAQEBAQEDAQEBAQEBAQEUBgqLOoJNgW5LB4JogUWTZIlkgWGRAoVMEiOBFYQgboEDJIEgAQEB X-IronPort-AV: E=Sophos;i="5.13,626,1427752800"; d="scan'208";a="165618442" Received: from mxout1.mail.janestreet.com ([38.105.200.112]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 16 Jun 2015 17:09:42 +0200 Received: from tot-qpr-mailcore2.delacy.com ([172.27.56.106] helo=tot-qpr-mailcore2) by mxout1.mail.janestreet.com with smtp (Exim 4.82) (envelope-from ) id 1Z4sUf-0007lp-D9 for caml-list@inria.fr; Tue, 16 Jun 2015 11:09:41 -0400 X-JS-Flow: external Received: by tot-qpr-mailcore2 with JS-mailcore (0.1) (envelope-from ) id BVgDw1-AAACkb-MU; 2015-06-16 11:09:41.394759-04:00 Received: from mail-qg0-f44.google.com ([209.85.192.44]) by mxgoog1.mail.janestreet.com with esmtps (UNKNOWN:AES128-GCM-SHA256:128) (Exim 4.72) (envelope-from ) id 1Z4sUf-000575-A3 for caml-list@inria.fr; Tue, 16 Jun 2015 11:09:41 -0400 Received: by qged89 with SMTP id d89so5840872qge.0 for ; Tue, 16 Jun 2015 08:09:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Z/TsiAiYHjya7xt/wTxsqyA131BLo4pwCUZmAD/0mfA=; b=ba/0bnu60HCdezcrxcMn6NoPL2ptmbXuJZCYO+csYuOQhsnWdZUMrpWswD3ayTB/3M kf3WTJ35Icyqd2hLpNOwT8V89lFvgY/hVSR/RaLlhe5uATSGtfdT8M7zs0KhZ8A6ZLQb ZZb6yy5QV7nxf4vvPLe+yZFsbXC1ZnycwILaY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Z/TsiAiYHjya7xt/wTxsqyA131BLo4pwCUZmAD/0mfA=; b=kQRMmHGB9Hoo+0tK/9I0bQozfQ1Ru7aeiq/UhIhHbqzw9kVSxVd5h7Zpr3C5CEJ+1u HQZ330uDaOvDIMDK+tfhYLnJ/bVqFkZX/hetMpyAyT+jjlMpBFIHp1NBbYgheAsygvEK JnsXht4XfrNYFhdLi+w0c/xhOuUZpcXA024qcA6VdweCmCWBy81xfVNn2Y/enVzUUClw l/XvGJ51DJNnp87lbvfcBEdi810fcQcw3oowt7R9xni8w0VrEISyir9dYLANWfW0ZPPS M42XYi8zkrJ7EKJDkpkczrqr3zxGHnvPaBzDK2HL014Zwym1FD+WeVQD8e6YYK8Q1elz t6JQ== X-Gm-Message-State: ALoCoQmxSwgjT0EYG7OrNKGWYQ4wGh8/YLg9qJHEQun+fr7s7+MniOFQWdsNt1rbtLyRXtZ2kE8hWE7aMHT4wS/4PmqCAOW2t5p1uqYQgVpsJLZLEVWa1s2/ZcVcGPcLykJFtqPghUsU X-Received: by 10.140.96.202 with SMTP id k68mr1261027qge.102.1434467381064; Tue, 16 Jun 2015 08:09:41 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.140.96.202 with SMTP id k68mr1261002qge.102.1434467380951; Tue, 16 Jun 2015 08:09:40 -0700 (PDT) Received: by 10.140.107.102 with HTTP; Tue, 16 Jun 2015 08:09:40 -0700 (PDT) In-Reply-To: References: Date: Tue, 16 Jun 2015 16:09:40 +0100 Message-ID: From:David House To:Kenneth Adam Miller Cc:caml users Content-Type: multipart/alternative; boundary=001a113a4a6aaf1f0d0518a3f642 X-JS-Processed-by: mailcore Subject: Re: [Caml-list] Async Server not executing --001a113a4a6aaf1f0d0518a3f642 Content-Type: text/plain; charset=UTF-8 The first thing to try is to make sure that everything is getting flushed. For temporary debugging messages I strongly recommend just using [Core.Std.eprintf "\n%!"]. On 16 June 2015 at 16:03, Kenneth Adam Miller wrote: > I'm having trouble with OCaml Async. I wrote a small server with it, and > right now I'm trying to unit test that server. Here's my code for the > server: > > > let _main ()= > print_endline "Server running"; > let handler = print_endline in > let socket = Tcp.on_port 5554 in > let server = Tcp.Server.create socket (fun addr r w -> > (Reader.contents r) >>| handler; (Writer.write w "got it")) in > server > > > > In my unit test code I have: > > let test_shutdown test_ctxt = Thread_safe.block_on_async_exn (fun () -> ( > print_endline "test_shutdown"; > let server = Server._main () in > server >>= fun server -> > let where = Tcp.to_host_and_port "127.0.0.1" 5554 in > Tcp.connect where >>= fun s -> > let socket, r, w = s in > ignore (Writer.write w "kill"); > ignore (Writer.flushed w); > (Reader.recv r >>> function > | `Ok result -> print_endline ("writing shutdown to server" ^ > result) > | `Eof -> ()); > return () > )); () > > > > I see test_shutdown and Server running, but not sign of "writing shutdown > to server" or even "got it"; why isn't my server or even any of the > connection executing? > --001a113a4a6aaf1f0d0518a3f642 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The first thing to try is to make sure that everything is = getting flushed. For temporary debugging messages I strongly recommend just= using [Core.Std.eprintf "<message>\n%!"].

On 16 June 2015 at 16:03, K= enneth Adam Miller <kennethadammiller@gmail.com> w= rote:
I'm having trouble = with OCaml Async. I wrote a small server with it, and right now I'm try= ing to unit test that server. Here's my code for the server:

let _main=C2=A0()=3D
=C2=A0 print_endlin= e=C2=A0
"Server running";
=C2=A0 let handler=C2=A0
=3D=C2=A0print_endline=C2=A0in

=C2=A0 let socket=C2=A0
<= span style=3D"margin:0px;padding:0px;border:0px;vertical-align:baseline;col= or:rgb(102,102,0)">=3D=C2=A0Tcp.on_port=C2=A05554=C2=A0in
=C2=A0 let server=C2=A0
=3D=C2=A0Tcp.Server.create socket=C2=A0(fun addr r w=C2=A0= ->
=C2=A0 =C2=A0 =C2=A0=C2=A0
(Reader.contents r)=C2=A0>>|=C2= =A0handler;=C2=A0<= span style=3D"margin:0px;padding:0px;border:0px;vertical-align:baseline;col= or:rgb(102,102,0)">(Writer.write w=C2=A0"go= t it"))=C2=A0= in
=C2=A0 server


<= div style=3D"margin:0px;padding:0px;border:0px;vertical-align:baseline;font= -family:Arial,Helvetica,sans-serif;font-size:13px">In my unit test code I h= ave:

let test_shu= tdown test_ctxt=C2=A0=3D= =C2=A0Thread_safe.block_on_async_exn=C2=A0(fun=C2=A0()=C2=A0->=C2=A0(
=C2=A0 =C2=A0 =C2=A0 p= rint_endline=C2=A0
"test_shutdown"= ;
=C2=A0 =C2=A0 =C2=A0 let se= rver=C2=A0
=3D=C2=A0Server._main=C2=A0()=C2=A0<= /span>in
=C2=A0 =C2=A0 =C2=A0 s= erver=C2=A0
>>=3D=C2= =A0fun server=C2=A0-><= br>=C2=A0 =C2=A0 =C2=A0 let=C2=A0where=C2=A0
=3D=C2= =A0Tcp.to_host_and_port=C2=A0"127.0.0.1&quo= t;=C2=A05554=C2=A0in
=C2= =A0 =C2=A0 =C2=A0=C2=A0
Tcp.connect=C2=A0where=C2=A0>>=3D=C2=A0fun s=C2=A0->=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 let socket
,=C2=A0r,= =C2=A0w=C2=A0=3D=C2=A0s=C2=A0in
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 ignore=C2=A0
(= Writer."kill");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ignore=C2= =A0
(Writer.
flushed w);
=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
(
Reader.recv r=C2=A0>>>= ;=C2=A0function
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
|=C2=A0`Ok result = -> =C2=A0print_endline ("writing shutdown to server" ^ result)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | `
Eof=C2=A0->=C2=A0());
=C2= =A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
return=C2=A0()
=C2= =A0 =C2=A0=C2=A0
));=C2=A0= ()



I see test_shutdown and Server running, but not sign of= "writing shutdown to server" or even "got it"; why isn= 't my server or even any of the connection executing?

--001a113a4a6aaf1f0d0518a3f642--