Description[dart:io] Don't close stdin with a socket finalizer
If an Isolate touches the 'stdio' getter, a _NativeSocket with
attached finalizer is created for it. Previously, when such an
Isolate exited, the finalizer would close the underlying
file descriptor. This CL changes the finalizer for stdin such
that the native objects will be cleaned up, but the underlying
file descriptor will not be closed. The underlying file
descriptor will now only be closed if the stdin stream
subscription is explicitly canceled.
Accessing the stdin getter after the stream is explicitly
canceled will result in a FileSystemException.
See also: https://github.com/dart-lang/test/issues/583
fixes #29229
R=rmacnak@google.com
Committed: https://github.com/dart-lang/sdk/commit/8c9c54d833865201abdaadbfa25c0c17b07d9926
Patch Set 1 #Patch Set 2 : Windows fixes #Patch Set 3 : Windows 7 fix #
Total comments: 2
Patch Set 4 : Address comments #
Messages
Total messages: 9 (5 generated)
|