diff --git a/tdutils/td/utils/port/StdStreams.cpp b/tdutils/td/utils/port/StdStreams.cpp index 30603e1de..290822724 100644 --- a/tdutils/td/utils/port/StdStreams.cpp +++ b/tdutils/td/utils/port/StdStreams.cpp @@ -127,8 +127,9 @@ class BufferedStdinImpl : public Iocp::Callback { break; } writer_.confirm_append(r_size.ok()); - if (iocp_ref_.post(0, this, nullptr)) { - inc_refcnt(); + inc_refcnt(); + if (!iocp_ref_.post(0, this, nullptr)) { + dec_refcnt(); } } if (!iocp_ref_.post(0, this, nullptr)) {