The following runs out of file handles on both Windows and Linux:
import std.stdio;
void main() {
// Assumes you have a file called "foo.txt" laying around. If you don't,
// create one.
while(1) {
File("foo.txt");
}
}
The following while loop body also does:
auto lines = File("foo.txt").byLine();
The following does not:
auto handle = File("foo.txt");
Marking as major because it silently breaks code in subtle ways. I wrote several small programs that relied on reference counting to free the file handle, which seemed to work fine until one day I made them use a lot more file handles than they usually do.
Comment #1 by dsimcha — 2010-07-25T10:12:38Z
Apparently, this is caused by bug 3516, rather than being a bug in Phobos per se.