On 12/28/2005 9:50 AM, Seth Falcon wrote: > On 27 Dec 2005, [EMAIL PROTECTED] 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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel