Bug 4490 – File ref counting broken for anonymous File structs

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
Other
OS
All
Creation time
2010-07-20T13:24:00Z
Last change time
2011-08-12T20:38:43Z
Assigned to
nobody
Creator
dsimcha
Depends on
3516

Comments

Comment #0 by dsimcha — 2010-07-20T13:24:51Z
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.
Comment #2 by dsimcha — 2011-08-12T20:38:43Z
Resolved by fixing temporary destruction.