Mpsc::Sender::send() only returns SendError once, then succeeds

If the receiver is gone, send only returns an error once:

use std::sync::mpsc::{channel, SendError};

fn doublesend() {
    let (tx, _) = channel();
    assert_eq!(tx.send(123), Err(SendError(123)));  // OK
    assert_eq!(tx.send(123), Err(SendError(123)));  // Fails - returns success

This fails with:
thread 'doublesend' panicked at 'assertion failed: (left == right)(left:Ok(()), right: Err("SendError(..)"))', <anon>:8

It seems like a bug. Is it intended?

Seems like a bug. It's something that only happens if the receiver drops before the first send, too.

I filed an issue: