Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Oct 2004 16:14:28 -0400 (EDT)
From:      Daniel Eischen <deischen@gdeb.com>
To:        Mark Gooderum <mark@verniernetworks.com>
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)
Message-ID:  <Pine.GSO.4.43.0410071610160.1700-100000@sea.ntplx.net>
In-Reply-To: <200410071949.i97Jndpw004041@www.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.43.0410071610160.1700-100000>