On Mar 14, 2014, at 11:03 AM, Kirill Müller <kirill.muel...@ivt.baug.ethz.ch> wrote:
> On 03/14/2014 03:54 PM, Simon Urbanek wrote: >> As far as R is concerned, the connection is open. In addition, pipes exist >> even without the process - you can close one end of a pipe and it will still >> exist (that’s what makes pipes useful, actually, because you can choose to >> close arbitrary combination of the R/W ends). Detecting that the other end >> of the pipe has closed is generally done by sending/receiving data to/from >> the end of interest - i.e. reading from a pipe that has closed the write end >> on the other side will yield 0 bytes read. Writing to a pipe that has closed >> the read end on the other side will yield SIGPIPE error (note that for text >> connections you have to call flush() to send the buffer): >> >>> >p=pipe("true","r") >>> >readLines(p) >> character(0) >>> >close(p) >>> >p=pipe("true","w") >>> >writeLines("", p) >>> >flush(p) >> Error in flush.connection(p) : ignoring SIGPIPE signal >>> >close(p) > Thanks for your reply. I tried this in an R console and received the error, > just like you described. Unfortunately, the error is not thrown when trying > the same in RStudio. Any ideas? > RStudio is not R, so it’s possible that they catch signals and fail to distinguish their use from R’s eating the signal before R can get it. I would suggest filing a bug report with RStudio. Cheers, Simon ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel