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 0A11A7FD1D for ; Wed, 4 Nov 2015 13:43:23 +0100 (CET) IronPort-PHdr: 9a23:m5SPKxaD683pdSBxi2nK1e3/LSx+4OfEezUN459isYplN5qZpci7bnLW6fgltlLVR4KTs6sC0LqL9fu4EjdRqb+681k8M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aJBzzOEJPK/jvHcaK1oLsh730oMWYOFQArQH+SI0xBS3+lR/WuMgSjNkqAYcK4TyNnEF1ff9Lz3hjP1OZkkW0zM6x+Jl+73YY4Kp5pIYTGZn9Kq8xSLgdCDU9L0g04tfqvF/NV1ih/HwZBy8skxFIChLJpC68e9G5kCz8u/E3kH2APMb2ZbkyXzmy7q4tTwXn3nRUfwUl+X3a35QjxJlQpwis8kRy Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=rich@annexia.org; spf=Pass smtp.mailfrom=rich@annexia.org; spf=Pass smtp.helo=postmaster@annexia.org Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of rich@annexia.org) identity=pra; client-ip=80.68.91.176; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rich@annexia.org"; x-sender="rich@annexia.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of rich@annexia.org designates 80.68.91.176 as permitted sender) identity=mailfrom; client-ip=80.68.91.176; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rich@annexia.org"; x-sender="rich@annexia.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of postmaster@annexia.org designates 80.68.91.176 as permitted sender) identity=helo; client-ip=80.68.91.176; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rich@annexia.org"; x-sender="postmaster@annexia.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DqBQCq/DlW/7BbRFBegzuBI4J8p28BAQEGlFqHVTsRAQEBAQEBAQGBCYIugjUTexMhBSiIZqBVoSGGDj6KLoJ9gRQFkmeDYQF7jB+cSTcsgUoMgi4+hWgBAQE X-IPAS-Result: A0DqBQCq/DlW/7BbRFBegzuBI4J8p28BAQEGlFqHVTsRAQEBAQEBAQGBCYIugjUTexMhBSiIZqBVoSGGDj6KLoJ9gRQFkmeDYQF7jB+cSTcsgUoMgi4+hWgBAQE X-IronPort-AV: E=Sophos;i="5.20,243,1444687200"; d="scan'208";a="186021135" Received: from annexia.org ([80.68.91.176]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 04 Nov 2015 13:43:22 +0100 Received: from rich by annexia.org with local (Exim 4.84) (envelope-from ) id 1ZtxPN-0006Zj-Tp for caml-list@inria.fr; Wed, 04 Nov 2015 12:43:21 +0000 Date: Wed, 4 Nov 2015 12:43:21 +0000 From: "Richard W.M. Jones" To: caml-list@inria.fr Message-ID: <20151104124321.GA25230@annexia.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Subject: [Caml-list] Are refs volatile? Some code I wrote recently does: let quit = ref false in let set_quit _ = quit := true in Sys.set_signal Sys.sigint (Sys.Signal_handle set_quit); Sys.set_signal Sys.sigquit (Sys.Signal_handle set_quit); and later on (where `tasks' is a list of long-running tasks): List.iter ( fun task -> if not !quit then task (); ) tasks; This works fine. My question is, could a change to the compiler in future cause the reference to !quit to be optimized away? And if so, is there a way to mark it as "volatile" (in the C sense)? Rich. -- Richard Jones Red Hat