we have a Quick but partial shutdown, which lets the async "threads"
work in the background and shutdown after a bit more time
and the graceful/full shutdown, which waits for everything.
Unfortunately `Drop` can't manage async and blocks everything,
no way to yeld either, so if we only have a thread
we would deadlock if we tried to stop things gracefully
Signed-off-by: Luca Fulchir <luca.fulchir@runesauth.com>
We use :💍:rand::SystemRandom, but we need to wrap it
for a couple of traits needed by ::x25519_dalek
Signed-off-by: Luca Fulchir <luca.fulchir@runesauth.com>
This will let us have a lot less locking.
We can do better in the future with ebpf and pinning connection to
a specific CPU with multiple listen() points on the same address,
but good enough for now
Signed-off-by: Luca Fulchir <luca.fulchir@runesauth.com>