[Rd] Enhancement request: anonymous connections

Duncan Murdoch murdoch at stats.uwo.ca
Wed Dec 28 02:44:40 CET 2005


On 12/27/2005 7:59 PM, Seth Falcon wrote:
> I would like to be able to use anonymous connections in R and have
> them close themselves when they go out of scope.
> 
> Here is an example of what I think should work, but does not at
> present:
> 
> ## create test file 
> x <- 1:10
> fn <- "anon-con-test-x.rda"
> save(x, file=fn)
> testUrl <- paste("file:/", getwd(), fn, sep="/")
> 
> ## use an anonymous connection to load data from
> ## the URL as suggested in help(load).
> for (i in 1:50) {
>     print(load(url(testUrl)))
> }
> 
> [snip some output]
> Error in url(testUrl) : all connections are in use
> 
> If such a feature is not possible/desired for the next release, it
> might be good to add a note to the documentation for connections that
> mentions this issue with anonymous connections.

This is a bug in load, isn't it?  load() opens the connection but 
doesn't close it.

I think a fix is to add a line to load() as shown below:

Index: load.R
===================================================================
--- load.R      (revision 36884)
+++ load.R      (working copy)
@@ -11,6 +11,7 @@
      if(!isOpen(con)) {
          ## code below assumes that the connection is open ...
          open(con, "rb")
+        on.exit(close(con))
      }

      magic <- readChar(con, 5)

Duncan Murdoch



More information about the R-devel mailing list