This PR contains a lot of code maintenance as a part of implementing the ability for our client to tunnel audio over TCP. This PR is (spiritually) based off of #47 and as such, it should probably be closed, since it implements mostly the same features. It redoes the implementation of run_until_disconnection and makes use of it in more places. It also changes most mutexes to async mutexes to avoid deadlocking/the threadpool being blocked. Finally, it implements TCP voice tunneling, determined by whether or not our UDP pings come through.
This PR contains a lot of code maintenance as a part of implementing the ability for our client to tunnel audio over TCP. This PR is (spiritually) based off of #47 and as such, it should probably be closed, since it implements mostly the same features. It redoes the implementation of
run_until_disconnection
and makes use of it in more places. It also changes most mutexes to async mutexes to avoid deadlocking/the threadpool being blocked. Finally, it implements TCP voice tunneling, determined by whether or not our UDP pings come through.