From martin.morgan at roswellpark.org  Tue Nov 21 22:25:28 2017
From: martin.morgan at roswellpark.org (Martin Morgan)
Date: Tue, 21 Nov 2017 16:25:28 -0500
Subject: [Rd] Are Rprintf and REprintf thread-safe?
In-Reply-To: <CAFOpNVFV6YhDRFF7-29zes=H6_3T0V83jqtx4mtYgs9tLazQ=Q@mail.gmail.com>
References: <CAFOpNVG48s4mahtM3nFkedParKJtoGkR5WPZOhg6bhaz-W43sg@mail.gmail.com>
 <alpine.DEB.2.20.1711211239350.2642@luke-Latitude>
 <CAFOpNVFV6YhDRFF7-29zes=H6_3T0V83jqtx4mtYgs9tLazQ=Q@mail.gmail.com>
Message-ID: <d6bb0907-79b7-1aee-ab98-fbefc5944151@roswellpark.org>

On 11/21/2017 04:12 PM, Winston Chang wrote:
> Thanks - I'll find another way to send messages to the main thread for printing.

The CRAN synchronicity and Bioconductor BiocParallel packages provide 
inter-process locks that you could use to surround writes (instead of 
sending message to the main thread), also easy enough to incorporate at 
the C level using the BH package as source for relevant boost header.

Martin

> 
> -Winston
> 
> On Tue, Nov 21, 2017 at 12:42 PM,  <luke-tierney at uiowa.edu> wrote:
>> On Tue, 21 Nov 2017, Winston Chang wrote:
>>
>>> Is it safe to call Rprintf and REprintf from a background thread? I'm
>>> working on a package that makes calls to fprintf(stderr, ...) on a
>>> background thread when errors happen, but when I run R CMD check, it
>>> says:
>>>
>>>   Compiled code should not call entry points which might terminate R nor
>>>   write to stdout/stderr instead of to the console, nor the system RNG.
>>>
>>> Is it safe to replace these calls with REprintf()?
>>
>>
>> Only if you enjoy race conditions or segfaults.
>>
>> Rprintf and REprintf are not thread-safe.
>>
>> Best,
>>
>> luke
>>
>>
>>>
>>> -Winston
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>
>> --
>> Luke Tierney
>> Ralph E. Wareham Professor of Mathematical Sciences
>> University of Iowa                  Phone:             319-335-3386
>> Department of Statistics and        Fax:               319-335-3017
>>     Actuarial Science
>> 241 Schaeffer Hall                  email:   luke-tierney at uiowa.edu
>> Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 


This email message may contain legally privileged and/or...{{dropped:2}}



[Rd] Are Rprintf and REprintf thread-safe?
Martin Morgan