From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 6C3671F9F6 for ; Mon, 3 Jun 2019 01:52:08 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 6/6] ds: drop write_set_watch field Date: Mon, 3 Jun 2019 01:52:06 +0000 Message-Id: <20190603015206.7871-7-e@80x24.org> In-Reply-To: <20190603015206.7871-1-e@80x24.org> References: <20190603015206.7871-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We never enable write watches ourselves for HTTP and NNTP, and only enable the write watch with EvCleanup because it's an "always on" watch. --- lib/PublicInbox/DS.pm | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/lib/PublicInbox/DS.pm b/lib/PublicInbox/DS.pm index 78210dd..6b04e76 100644 --- a/lib/PublicInbox/DS.pm +++ b/lib/PublicInbox/DS.pm @@ -30,7 +30,6 @@ use fields ('sock', # underlying socket 'write_buf', # arrayref of scalars, scalarrefs, or coderefs to write 'write_buf_offset', # offset into first array of write_buf to start writing at 'write_buf_size', # total length of data in all write_buf items - 'write_set_watch', # bool: true if we internally set watch_write rather than by a subclass 'closed', # bool: socket is closed 'event_watch', # bitmask of events the client is interested in (POLLIN,OUT,etc.) ); @@ -690,7 +689,6 @@ sub write { push @{$self->{write_buf}}, $bref; $self->{write_buf_size} += $len; } - $self->{write_set_watch} = 1 unless $self->{event_watch} & POLLOUT; $self->watch_write(1); return 0; } elsif ($! == ECONNRESET) { @@ -717,11 +715,7 @@ sub write { DebugLevel >= 2 && $self->debugmsg("Wrote ALL %d bytes to %d (nq=%d)", $written, $self->{fd}, $need_queue); $self->{write_buf_offset} = 0; - - if ($self->{write_set_watch}) { - $self->watch_write(0); - $self->{write_set_watch} = 0; - } + $self->watch_write(0); # this was our only write, so we can return immediately # since we avoided incrementing the buffer size or @@ -739,7 +733,6 @@ sub write { sub on_incomplete_write { my PublicInbox::DS $self = shift; - $self->{write_set_watch} = 1 unless $self->{event_watch} & POLLOUT; $self->watch_write(1); } @@ -858,11 +851,6 @@ sub watch_write { $event &= ~POLLOUT if ! $val; $event |= POLLOUT if $val; - if ($val && caller ne __PACKAGE__) { - # A subclass registered interest, it's now responsible for this. - $self->{write_set_watch} = 0; - } - # If it changed, set it if ($event != $self->{event_watch}) { if ($HaveKQueue) { -- EW