github doronz88/pymobiledevice3 v9.33.4

latest releases: v11.33.0, v11.32.0, v11.31.0...
3 months ago

Highlights

🐛 Fix userspace RSD tunnel teardown hanging the event loop

Closing a UserspaceRsdTunnel could time out in aclose(), later wedge the event loop's own
shutdown (e.g. pytest-asyncio hanging at teardown), and leak one parked rx_pump thread per
relayed connection. Three intertwined causes in the dial-plane relay are fixed: the client's EOF
is now propagated to the device as a TCP half-close so relays finish on their own, the blocking
PyTCP socket close was moved off the event loop thread, and rx_pump threads now terminate
instead of parking forever in recv(). Requires pmd-pytcp >= 0.0.6, which also fixes a
Windows-only TX Ring thread crash during stack shutdown. Fixes #1756.

tunnel = UserspaceRsdTunnel(serial=udid)
rsd = await tunnel.aopen()
...
await tunnel.aclose()  # now returns promptly, no leaked threads

What's Changed

Full Changelog: v9.33.3...v9.33.4

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.