From owner-freebsd-bugs@FreeBSD.ORG Sun Sep 7 16:50:15 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B3AE16A4C0 for ; Sun, 7 Sep 2003 16:50:15 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 26ECA43FBF for ; Sun, 7 Sep 2003 16:50:15 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h87NoFUp088229 for ; Sun, 7 Sep 2003 16:50:15 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h87NoFPL088228; Sun, 7 Sep 2003 16:50:15 -0700 (PDT) Date: Sun, 7 Sep 2003 16:50:15 -0700 (PDT) Message-Id: <200309072350.h87NoFPL088228@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Dan Langille" Subject: Re: kern/56274: pthreads does not return correct value at EOT X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Dan Langille List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Sep 2003 23:50:15 -0000 The following reply was made to PR kern/56274; it has been noted by GNATS. From: "Dan Langille" To: FreeBSD-gnats-submit@FreeBSD.org Cc: Subject: Re: kern/56274: pthreads does not return correct value at EOT Date: Sun, 07 Sep 2003 19:48:37 -0400 Here is the suggested patch. --- uthread_write.c.org Sun Sep 7 10:58:31 2003 +++ uthread_write.c Sun Sep 7 15:41:34 2003 @@ -93,7 +93,7 @@ * write: */ if (blocking && ((n < 0 && (errno == EWOULDBLOCK || - errno == EAGAIN)) || (n >= 0 && num < nbytes))) { + errno == EAGAIN)) || (n > 0 && num < nbytes))) { curthread->data.fd.fd = fd; _thread_kern_set_timeout(NULL); @@ -131,7 +131,7 @@ * If there was an error, return partial success * (if any bytes were written) or else the error: */ - } else if (n < 0) { + } else if (n <= 0) { if (num > 0) ret = num; else -- Dan Langille : http://www.langille.org/