/// As the context_configurator closure is responsible for binding to sockets, this can be used to
/// spawn a test server and wait for it to be ready to accept requests before returning (avoiding
pub(crate) fn spawn_test_server<F: FnOnce(CoapContext<'static>) -> CoapContext<'static> + Send + 'static>(
panic!("Test server thread is dead and has not reported readiness after 10 seconds, but has also not panicked.")
panic!("Test server thread has not reported readiness after 10 seconds, but has also not died (deadlock?).")
pub(crate) fn run_test_server<F: FnOnce(CoapContext<'static>) -> CoapContext<'static>>(context_configurator: F) {