From owner-freebsd-threads@FreeBSD.ORG Thu Oct 7 20:20:24 2004 Return-Path: Delivered-To: freebsd-threads@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7265A16A4CE for ; Thu, 7 Oct 2004 20:20:24 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 636DF43D39 for ; Thu, 7 Oct 2004 20:20:24 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i97KKOQx084253 for ; Thu, 7 Oct 2004 20:20:24 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i97KKOrO084252; Thu, 7 Oct 2004 20:20:24 GMT (envelope-from gnats) Date: Thu, 7 Oct 2004 20:20:24 GMT Message-Id: <200410072020.i97KKOrO084252@freefall.freebsd.org> To: freebsd-threads@FreeBSD.org From: Daniel Eischen 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:20:24 -0000 The following reply was made to PR threads/72429; it has been noted by GNATS. From: Daniel Eischen To: Mark Gooderum Cc: freebsd-gnats-submit@freebsd.org, Subject: Re: threads/72429: threads blocked in stdio (fgets, etc) are not cancellable in 5.3 (works in 4.x) Date: Thu, 7 Oct 2004 16:14:28 -0400 (EDT) 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