This is something that is plausibly useful, and is provided by libuv. This is
not currently surfaced as part of the `TcpStream` type, but it may possibly
appear in the future. For now only the raw functionality is provided through the
Rtio objects.
});
s1.write([2]).unwrap();
- p.recv();
+ rx.recv();
})
+
+ iotest!(fn shutdown_smoke() {
+ use rt::rtio::RtioTcpStream;
+
+ let addr = next_test_ip4();
+ let a = TcpListener::bind(addr).unwrap().listen();
+ spawn(proc() {
+ let mut a = a;
+ let mut c = a.accept().unwrap();
+ assert_eq!(c.read_to_end(), Ok(~[]));
+ c.write([1]).unwrap();
+ });
+
+ let mut s = TcpStream::connect(addr).unwrap();
+ assert!(s.obj.close_write().is_ok());
+ assert!(s.write([1]).is_err());
+ assert_eq!(s.read_to_end(), Ok(~[1]));
+ })
}