use test_log::test;
use tracing::instrument;
#[test(tokio::test(flavor = "multi_thread", worker_threads = 2))]
#[instrument]
async fn issue_279() {
use futures_util::{stream::TryStreamExt, try_join};
use tokio::net::UnixStream;
use zbus::{connection::Builder, MessageStream};
let guid = zbus::Guid::generate();
let (p0, p1) = UnixStream::pair().unwrap();
let server = Builder::unix_stream(p0).server(guid).unwrap().p2p().build();
let client = Builder::unix_stream(p1).p2p().build();
let (client, server) = try_join!(client, server).unwrap();
let mut stream = MessageStream::from(client);
let next_msg_fut = stream.try_next();
drop(server);
assert!(matches!(next_msg_fut.await, Err(_)));
}