MumbleCloseable
Brian Goetz
brian.goetz at oracle.com
Tue Jun 25 06:22:09 PDT 2013
> As someone said one the lambda-dev mailing list, there is no TWR in C#
> because close is called at the end of the for-each instruction.
> Why do you want user to care about releasing resources manually if this
> can be done automatically ?
Because it can't be.
What happens if:
- no one executes a terminal op
- a terminal op throws an exception
- the user asks for an Iterator/Spliterator and doesn't exhaust it
This is analogous the problem with IO streams, where:
InputStream is = ...
use(is);
is.close();
isn't good enough; you want try-finally (or TWR) to ensure that cleanup
happens.
What you suggest increases the probability that the stream is closed,
but doesn't guarantee it. (It also is far more intrusive in the
implementation.)
More information about the lambda-libs-spec-experts
mailing list