T
Todd A. Jacobs
I have the following code snippet:
sleep 0.3
IO.popen('/usr/bin/xclip -o').readlines {|f| print}
running in a tight loop. If I let it run for a short time (about 25
seconds), I get this error:
Enter URL: ./dice.rb:89:in `popen': Too many open files - /usr/bin/xclip -o (Errno::EMFILE)
from ./dice.rb:89:in `read'
from ./dice.rb:181
from ./dice.rb:162:in `loop'
from ./dice.rb:162
I don't understand the nature of the error, since the pipe is implicitly
closed when the block exits, right? Event if I change the line to:
IO.popen('/usr/bin/xclip -o').readlines {|f| print; f.close}
I still have the same problem. So, what file resource is being consumed,
and how do I fix it?
sleep 0.3
IO.popen('/usr/bin/xclip -o').readlines {|f| print}
running in a tight loop. If I let it run for a short time (about 25
seconds), I get this error:
Enter URL: ./dice.rb:89:in `popen': Too many open files - /usr/bin/xclip -o (Errno::EMFILE)
from ./dice.rb:89:in `read'
from ./dice.rb:181
from ./dice.rb:162:in `loop'
from ./dice.rb:162
I don't understand the nature of the error, since the pipe is implicitly
closed when the block exits, right? Event if I change the line to:
IO.popen('/usr/bin/xclip -o').readlines {|f| print; f.close}
I still have the same problem. So, what file resource is being consumed,
and how do I fix it?