From owner-freebsd-threads@FreeBSD.ORG Thu Oct 7 20:14:30 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 53C1116A4CE; Thu, 7 Oct 2004 20:14:30 +0000 (GMT) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id B022843D5A; Thu, 7 Oct 2004 20:14:29 +0000 (GMT) (envelope-from deischen@gdeb.com) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) i97KESZR019868; Thu, 7 Oct 2004 16:14:28 -0400 (EDT) Date: Thu, 7 Oct 2004 16:14:28 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Mark Gooderum In-Reply-To: <200410071949.i97Jndpw004041@www.freebsd.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) cc: freebsd-gnats-submit@freebsd.org cc: freebsd-threads@freebsd.org Subject: Re: threads/72429: threads blocked in stdio (fgets, etc) are not cancellable in 5.3 (works in 4.x) X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Daniel Eischen List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Oct 2004 20:14:30 -0000 fgets is not a required cancellation point. See the POSIX standard. The standard says it, along with many other functions, _may_ be a cancellation point, but the only required cancellation points are: accept() mq_timedsend() putpmsg() sigtimedwait() aio_suspend() msgrcv() pwrite() sigwait() clock_nanosleep() msgsnd() read() sigwaitinfo() close() msync() readv() sleep() connect() nanosleep() recv() system() creat() open() recvfrom() tcdrain() fcntl()2 pause() recvmsg() usleep() fdatasync() poll() select() wait() fsync() pread() sem_timedwait() waitid() getmsg() pselect() sem_wait() waitpid() getpmsg() pthread_cond_timedwait() send() write() lockf() pthread_cond_wait() sendmsg() writev() mq_receive() pthread_join() sendto() mq_send() pthread_testcancel() sigpause() mq_timedreceive() putmsg() sigsuspend() -- Dan Eischen