threads/72429: threads blocked in stdio (fgets, etc) are not cancellable in 5.3 (works in 4.x)

Daniel Eischen deischen at gdeb.com
Thu Oct 7 13:14:30 PDT 2004


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



More information about the freebsd-threads mailing list