diff options
-rw-r--r-- | fnet/src/vespa/fnet/transport_thread.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fnet/src/vespa/fnet/transport_thread.cpp b/fnet/src/vespa/fnet/transport_thread.cpp index bb637194748..2c0d00b22f3 100644 --- a/fnet/src/vespa/fnet/transport_thread.cpp +++ b/fnet/src/vespa/fnet/transport_thread.cpp @@ -461,7 +461,11 @@ FNET_TransportThread::handle_wakeup() break; case FNET_ControlPacket::FNET_CMD_IOC_ENABLE_WRITE: context._value.IOC->EnableWriteEvent(true); - context._value.IOC->SubRef(); + if (context._value.IOC->HandleWriteEvent()) { + context._value.IOC->SubRef(); + } else { + handle_close_cmd(context._value.IOC); + } break; case FNET_ControlPacket::FNET_CMD_IOC_DISABLE_WRITE: context._value.IOC->EnableWriteEvent(false); |