Date: Thu, 29 May 2003 21:33:03 +0400 (MSD) From: Igor Sysoev <is@rambler-co.ru> To: Terry Lambert <tlambert2@mindspring.com> Cc: arch@freebsd.org Subject: Re: sendfile(2) SF_NOPUSH flag proposal Message-ID: <Pine.BSF.4.21.0305292132370.57367-100000@is> In-Reply-To: <3ED6291B.36F382F@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 29 May 2003, Terry Lambert wrote: > Igor Sysoev wrote: > > On Wed, 28 May 2003, Terry Lambert wrote: > > > Igor Sysoev wrote: > > > > > will result in you sleeping with PRUS_MORETOCOME set, but with > > > > > no more being sent because the send buffer doesn't get emptied, > > > > > as it's waiting for more data to send. > > > > > > > > But as I understand PRUS_MORETOCOME is not set if socket is non-blocking. > > > > > > Then the bug is still not fixed by setting it, since your total > > > send size might be less than `sysctl net.inet.tcp.sendspace`. > > > > Why ? We can reset TF_MORETOCOME if the sending is completed. > > It's called a "deadly embrace" deadlock. Look it up. I misread you. I thought that sbwait() set PRUS_MORETOCOME itself. Nevertheless there would not be a deadlock because tcp_output() tests TF_MORETOCOME and TF_NOPSUH only the data is less than MSS. Otherwise tcp_output() can send it. Igor Sysoev http://sysoev.ru/en/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0305292132370.57367-100000>