()
| 249 | master_ref = {"fd": master} |
| 250 | |
| 251 | def _release_master_fd(): |
| 252 | cur = master_ref.get("fd") |
| 253 | if cur is None: |
| 254 | return |
| 255 | # Invalidate before close so later cleanup cannot close a reused fd. |
| 256 | master_ref["fd"] = None |
| 257 | try: |
| 258 | proc._pty_master = None # type: ignore[attr-defined] |
| 259 | except Exception: |
| 260 | pass |
| 261 | try: |
| 262 | loop.remove_reader(cur) |
| 263 | except Exception: |
| 264 | pass |
| 265 | try: |
| 266 | os.close(cur) |
| 267 | except OSError: |
| 268 | pass |
| 269 | |
| 270 | def _on_data(): |
| 271 | cur = master_ref.get("fd") |