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 8B16A7EEF6 for ; Tue, 16 Jun 2015 17:36:17 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of kennethadammiller@gmail.com) identity=pra; client-ip=209.85.214.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="kennethadammiller@gmail.com"; x-sender="kennethadammiller@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of kennethadammiller@gmail.com designates 209.85.214.173 as permitted sender) identity=mailfrom; client-ip=209.85.214.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="kennethadammiller@gmail.com"; x-sender="kennethadammiller@gmail.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@mail-ob0-f173.google.com) identity=helo; client-ip=209.85.214.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="kennethadammiller@gmail.com"; x-sender="postmaster@mail-ob0-f173.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DXAQB+QYBVm63WVdFbgkWBfgaDGMJkAiiBEgdMAQEBAQEBEgEBAQEBBgsLCSEuhBoIAQEBAwESEQQZARsdAQMBCwYDAgsNIAoCAiEBAREBBQEcGSKFUYImAQMKCJlIkGs+MYs/gWuCeYt+ChknDVeEYgEBAQEBAQQBAQEBAQEWAQUOizaCTYFuSweCaA+BNgWTX4lkgWGRAoVMEiOBDAmEOyIxgQMkgSABAQU X-IPAS-Result: A0DXAQB+QYBVm63WVdFbgkWBfgaDGMJkAiiBEgdMAQEBAQEBEgEBAQEBBgsLCSEuhBoIAQEBAwESEQQZARsdAQMBCwYDAgsNIAoCAiEBAREBBQEcGSKFUYImAQMKCJlIkGs+MYs/gWuCeYt+ChknDVeEYgEBAQEBAQQBAQEBAQEWAQUOizaCTYFuSweCaA+BNgWTX4lkgWGRAoVMEiOBDAmEOyIxgQMkgSABAQU X-IronPort-AV: E=Sophos;i="5.13,627,1427752800"; d="scan'208";a="165624416" Received: from mail-ob0-f173.google.com ([209.85.214.173]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 16 Jun 2015 17:36:16 +0200 Received: by obbgp2 with SMTP id gp2so13976282obb.2 for ; Tue, 16 Jun 2015 08:36:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=Nvo/lva3/zv3Ll2jbld76EmsiPSSsuZtPPg9nbhwWC4=; b=QsgmNf6Y/1iDEc3YyEev8ECQYFniMGMKeDdP1oZOiUTy47x+CdVixjqY7ovuZxE8DF PVvBSigAOd3HK9Tjx3PpxvMNc9ShBS2DgQjuLrh41tPrEib7C3ho+Qw/wRpic6Er93VI D+g2REstn1a0JWZI/f+AR/xZT3RMytqYMQ/Hoh0I64+BYVgg4699dSpDG0tbqAgf/cIZ leGByZVNdqy6YYAhN9YyBWGpTRxXGSlfoL0EM1LfGLug+n/t5fqK1ubzwdRaqyNRWm8R /AFzs6BXplMGQuFxY5xfwkAMFtb7Ytlnq3v83+hzBdf4wWujinowY+oSowhG3sExsO4e X4BQ== MIME-Version: 1.0 X-Received: by 10.60.39.136 with SMTP id p8mr753837oek.45.1434468975619; Tue, 16 Jun 2015 08:36:15 -0700 (PDT) Received: by 10.202.191.8 with HTTP; Tue, 16 Jun 2015 08:36:15 -0700 (PDT) In-Reply-To: References: Date: Tue, 16 Jun 2015 11:36:15 -0400 Message-ID: From: Kenneth Adam Miller Cc: caml users Content-Type: multipart/alternative; boundary=089e0160bd10bbb46c0518a455e0 Subject: Re: [Caml-list] Async Server not executing --089e0160bd10bbb46c0518a455e0 Content-Type: text/plain; charset=UTF-8 So, now I can get server received if I add that into the callback, but at "writing shutdown to server" I don't see response received or even something for Eof. On Tue, Jun 16, 2015 at 11:09 AM, David House wrote: > 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? >> > > --089e0160bd10bbb46c0518a455e0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
So, now I can get server received if I add that into the c= allback, but at "writing shutdown to server" I don't see resp= onse received or even something for Eof.
On Tue, Jun 16, 2015 at 11:09 AM, David House = <dhouse@janestreet.com> wrote:
The first thing to try is to make sure that every= thing is getting flushed. For temporary debugging messages I strongly recom= mend just using [Core.Std.eprintf "<message>\n%!"].

On 16 June 2015 at 16:03, Kenneth Adam Miller <kennethadammiller@gmail.com> 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 serv= er. Here's my code for the server:


let _main=C2=A0()= =3D
=C2=A0 print_endline=C2=A0
"Server running";
=C2=A0 let handler=C2=A0
=3D<= span style=3D"margin:0px;padding:0px;border:0px;vertical-align:baseline;col= or:rgb(0,0,0)">=C2=A0print_endline=C2=A0in<= span style=3D"margin:0px;padding:0px;border:0px;vertical-align:baseline;col= or:rgb(0,0,0)">
=C2=A0 let socket=C2=A0=3D=C2=A0Tcp.on_port=C2=A055= 54=C2=A0in
=C2=A0 let server=C2=A0
=3D=C2=A0
Tcp.= Server.create socket=C2=A0(fun addr r w=C2=A0->
=C2=A0 =C2=A0 =C2=A0=C2=A0
(Reader.con= tents r)=C2=A0>>|=C2=A0handler;=C2=A0(Writer.write w=C2=A0"got it"))=C2=A0in
=C2=A0 server



In my unit test code I have:

let test_shutdown 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 print_endline=C2=A0<= /span>"test_shutdown";
=C2=A0 =C2=A0 =C2=A0 let server=C2=A0
=3D
=C2=A0._main=C2=A0()=C2=A0in
=C2=A0 =C2=A0 =C2=A0 server=C2=A0
>>=3D
=C2=A0fun server=C2=A0->
=C2=A0 =C2=A0 =C2= =A0 let=C2=A0
where=C2=A0=3D=C2=A0Tcp.to_host_and_= port=C2=A0"127.0.0.1"=C2=A05554=C2=A0in
=C2=A0 =C2=A0 =C2=A0=C2= =A0
Tcp.connect=C2=A0where= =C2=A0>>=3D=C2=A0fu= n 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.write w=C2=A0"kill");=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ignore=C2=A0
(Writer.<= /span>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_en= dline ("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
return=C2=A0()
=C2=A0 =C2=A0=C2=A0));=C2=A0()