isClosedForSend

abstract fun isClosedForSend(): Boolean

当前通道是否已关闭发送端

  • 返回 true 表示后续任何 send/trySend 都会失败:

  • send 会抛出 ClosedSendChannelException;

  • trySend 会返回 ChannelResult.closed。

  • 返回 false 不保证下一次 send 一定成功—— 通道可能在检查之后、真正发送之前被并发关闭; 若需强一致性,请使用 trySend 并根据其返回结果判断。

典型用途:

  1. 提前跳过昂贵计算:

if (channel.isClosedForSend) return
val expensive = compute()
channel.send(expensive) // 仍可能失败,但已尽量避免无用计算
  1. 断言与日志诊断。

See also

真正安全的发送方式

close

关闭发送端

ReceiveChannel.cancel

取消整个通道(也会关闭发送端)