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 C56F47F891 for ; Wed, 19 Mar 2014 22:21:23 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of anders@fugmann.net) identity=pra; client-ip=90.184.182.235; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anders@fugmann.net"; x-sender="anders@fugmann.net"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of anders@fugmann.net designates 90.184.182.235 as permitted sender) identity=mailfrom; client-ip=90.184.182.235; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anders@fugmann.net"; x-sender="anders@fugmann.net"; 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@fw.fugmann.net) identity=helo; client-ip=90.184.182.235; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anders@fugmann.net"; x-sender="postmaster@fw.fugmann.net"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ap4EAFUJKlNauLbr/2dsb2JhbABayBB0glMRQD0WGAMCAQIBSw0IAod5njKxd5MkAQOfE4tkgy48 X-IPAS-Result: Ap4EAFUJKlNauLbr/2dsb2JhbABayBB0glMRQD0WGAMCAQIBSw0IAod5njKxd5MkAQOfE4tkgy48 X-IronPort-AV: E=Sophos;i="4.97,688,1389740400"; d="scan'208";a="63696779" Received: from 0405ds1-vaer.1.fullrate.dk (HELO fw.fugmann.net) ([90.184.182.235]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 19 Mar 2014 22:21:23 +0100 Received: from [10.0.0.129] (dhcp-129.fugmann.net [10.0.0.129]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by fw.fugmann.net (Postfix) with ESMTPSA id DE390740BF1 for ; Wed, 19 Mar 2014 22:21:20 +0100 (CET) Message-ID: <532A0A5E.6070107@fugmann.net> Date: Wed, 19 Mar 2014 22:21:34 +0100 From: Anders Peter Fugmann User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.3.0 MIME-Version: 1.0 To: caml-list Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Validation-by: anders@fugmann.net Subject: [Caml-list] Bug when printing from signal handlers? Hi, I'm experiencing a live lock while printing from a signal handler. It seems to be triggered when the main is interrupted while printing. The following program exposes the problem: (tested on 4.00.1 and 4.01.0) let rec loop () = print_endline "In main thread"; loop () let _ = Sys.(set_signal sigalrm (Signal_handle (fun _ -> print_endline "In signal handler"))); let _ = Unix.(setitimer ITIMER_REAL { it_interval = 0.1; it_value = 0.1 }) in loop () For some reason, in caml_flush_parial channel->buff becomes greater than channel->curr which means caml_flush never completes, as caml_flush_partial never returns true. Is printing from a signal handler illegal? I tries searching for bug on this matter but only found examples that printed from signal handlers. Regards Anders