Thank you Peter,
For anyone who is interested, these two examples illustrate nicely:
## example 1
for (i in 1:50) {foo <- pipe('date') ; rm(foo) ; cat(i,' ')}
showConnections(all=T)
closeAllConnections()
## example 2
for (i in 1:50) {foo <- pipe('date') ; close(foo) ; cat(i,' ')}
I would have sworn I had tried putting that close() in there, but
evidently I didn't. Also, I was looking at ?connections, but missed
?showConnections. Oops.
I did figure out that I was wrong about split.screen being the cause.
I'm actually monitoring several data files that have new data
appended once per minute, and my current code uses pipe() like yours.
Down the road I'm hoping to use a socket connection.
version
_ platform sparc-sun-solaris2.7 arch sparc os solaris2.7 system sparc, solaris2.7 status major 1 minor 5.1 year 2002 month 06 day 17 language R -Don
At 11:00 PM +0200 10/4/02, Peter Dalgaard BSA wrote:
Don MacQueen <macq at llnl.gov> writes:
I'm trying to figure out how to get out of this situation:
> source('monit.r')
Error in file(file, "r") : All connections are in use
> showConnections()
description class mode text isopen can read can write
> help.search('connection')
Error in file(file, "r") : All connections are in use
> q()
Save workspace image? [y/n/c]: y Error in file(file, "wb") : All connections are in use As best as I can tell, I got a bunch of extra connections by experimenting with the split.scree() and layout() functions. But I can't, so far, find a way to remove or close them. When I use ls() to see a list of objects, they all look like things I explicitly created, i.e., vectors, lists, functions, etc., and not like connection objects. I can't find any connection object to close with the close() function. I have closed all graphics devices with dev.off(). I suppose I can quit without saving, and then restart R to get out of this mess, but I'd like to find a clean way out. Suggestions?
Happened to me recently. (With a function designed to monitor my sales
rank at Amazon if you must know...) showConnections(all=T) indicates
what is up, and closeAllConnections() is the immediate way out. To
avoid getting into the pickle in the first place, you need to use code
like
z <- scan(c<-pipe("grep -v CEST ~/sales.log"))
close(c)
The last bit looks like a clear bug. Surely, we could
closeAllConnections() before trying to save the workspace?
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
-------------------------------------- Don MacQueen Environmental Protection Department Lawrence Livermore National Laboratory Livermore, CA, USA -------------------------------------- -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._