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:20:24 PDT 2004


The following reply was made to PR threads/72429; it has been noted by GNATS.

From: Daniel Eischen <deischen at gdeb.com>
To: Mark Gooderum <mark at verniernetworks.com>
Cc: freebsd-gnats-submit at freebsd.org, <freebsd-threads at 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
 


More information about the freebsd-threads mailing list