Enhancement request: anonymous connections
On 12/28/2005 9:50 AM, Seth Falcon wrote:
On 27 Dec 2005, murdoch at stats.uwo.ca wrote:
This is a bug in load, isn't it? load() opens the connection but doesn't close it.
Well, it may be that load needs a small fix, but that doesn't fix anonymous connections in general, IMO.
No it doesn't. However, I've committed the small fix.
The loop could easily have been:
for (i in 1:50) {
print(load(url(testUrl, open="r")))
}
And it doesn't need to be related to url or load:
cat("a line of text\n", file="another-example.txt")
z <- NULL
for (i in 1:50) {
z <- c(z, readLines(file("another-example.txt", open="r")))
}
Also, connections are "in use" even if they are closed:
for (i in 1:50) {
if (isOpen(file("another-example.txt")))
stop("you will not get here")
}
I think the general problem is that R doesn't have references (or at least, they aren't in a final, documented state). If the garbage collector closed a connection, then things would go wrong when there were two copies of it: the second one would be messed up when the first was destroyed. If we had references, then opening a connection could create a connection object and a reference to it; the connection object would remain as long as there were any references to it, and could be destroyed (and automatically closed) after the last reference was gone. Duncan Murdoch