-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Implement Duplex destroy #2831
base: main
Are you sure you want to change the base?
Conversation
@reconbot Could you please take a look at this? |
@reconbot, could you please let me know if this PR is in the right direction? Or if there's some other intended way to clean up a SerialPort object? |
+1 - would also like to see this fix (or similar) merged, as the current behavior in #2776 is quite tricky to work around. |
for your consideration, @reconbot |
@HipsterBrown maybe you can help? |
Rebased |
@reconbot I think this PR is production-ready. If not, could you please let me know what I need to do? |
Previously, there was no way to close a port reliably with this API. If you open a port, trying to
.close
before it's done opening would throw an error and leave the underlying port open. If you used node's.destroy()
,stream.addAbortSignal()
, or[Symbol.asyncDispose]
, the underlying port would remain in an open state.This change implements the
Duplex.destroy
method. This is different from.close
in that once aSerialPortStream
is destroyed, it cannot be opened again.