POSIX 1003.1-2003 стандарт дает список в разделе System Interfaces, затем Общая информация, затем Потоки ( прямая ссылка любезность A. Король). ( Добавленный : POSIX 1003.1-2008 теперь имеется в сети (все 3 872 страницы из него в PDF и HTML). Необходимо зарегистрироваться (свободный). Я добрался до него от Книжный магазин Open Group .)
точки Отмены должны произойти, когда поток выполнит следующие функции:
- принимают ()
- aio_suspend ()
- clock_nanosleep ()
- близкий ()
- , подключение ()
- создает ()
- fcntl () (Когда cmd аргументом является F_SETLKW)
- fdatasync ()
- fsync ()
- getmsg ()
- getpmsg ()
- lockf ()
- mq_receive ()
- mq_send ()
- mq_timedreceive ()
- mq_timedsend ()
- msgrcv ()
- msgsnd ()
- msync ()
- наносон ()
- открытый ()
- пауза ()
- опрос ()
- pread ()
- pselect ()
- pthread_cond_timedwait ()
- pthread_cond_wait ()
- pthread_join ()
- pthread_testcancel ()
- putmsg ()
- putpmsg ()
- pwrite ()
- чтение ()
- readv ()
- recv ()
- recvfrom ()
- recvmsg ()
- выбор ()
- sem_timedwait ()
- , sem_wait ()
- отправляют ()
- sendmsg ()
- sendto ()
- sigpause ()
- sigsuspend ()
- sigtimedwait ()
- sigwait ()
- sigwaitinfo ()
- сон ()
- система ()
- tcdrain ()
- , usleep ()
- ожидают ()
- waidid ()
- waitpid ()
- запись ()
- writev ()
, точка отмены А может также произойти, когда поток выполняет следующие функции:
- доступ ()
- asctime ()
- asctime_r ()
- catclose ()
- catgets ()
- catopen ()
- closedir ()
- closelog ()
- ctermid ()
- ctime ()
- ctime_r ()
- dbm_close ()
- dbm_delete ()
- dbm_fetch ()
- dbm_nextkey ()
- dbm_open ()
- dbm_store ()
- dlclose ()
- dlopen ()
- endgrent ()
- endhostent ()
- endnetent ()
- endprotoent ()
- endpwent ()
- endservent ()
- endutxent ()
- fclose ()
- fcntl () (Для любого значения cmd аргумента. [По-видимому, кроме F_SETLKW, который перечислен.]
- сброс ()
- fgetc ()
- fgetpos ()
- fgets ()
- fgetwc ()
- fgetws ()
- fmtmsg ()
- fopen ()
- fpathconf ()
- fprintf ()
- fputc ()
- fputs ()
- fputwc ()
- fputws ()
- освобожденный ()
- freopen ()
- fscanf ()
- fseek ()
- fseeko ()
- fsetpos ()
- fstat ()
- ftell ()
- ftello ()
- ftw ()
- fwprintf ()
- fwrite ()
- fwscanf ()
- getaddrinfo ()
- getc ()
- getc_unlocked ()
- getchar ()
- getchar_unlocked ()
- getcwd ()
- getdate ()
- getgrent ()
- getgrgid ()
- getgrgid_r ()
- getgrnam ()
- getgrnam_r ()
- gethostbyaddr ()
- gethostbyname ()
- gethostent ()
- gethostid ()
- gethostname ()
- getlogin ()
- getlogin_r ()
- getnameinfo ()
- getnetbyaddr ()
- getnetbyname ()
- getnetent ()
- getopt () (если opterr является ненулевым.)
- getprotobyname ()
- getprotobynumber ()
- getprotoent ()
- getpwent ()
- getpwnam ()
- getpwnam_r ()
- getpwuid ()
- getpwuid_r ()
- добирается ()
- getservbyname ()
- getservbyport ()
- getservent ()
- getutxent ()
- getutxid ()
- getutxline ()
- getwc ()
- getwchar ()
- getwd ()
- шарик ()
- iconv_close ()
- iconv_open ()
- ioctl ()
- ссылка ()
- localtime ()
- localtime_r ()
- lseek ()
- lstat ()
- mkstemp ()
- mktime ()
- nftw ()
- opendir ()
- openlog ()
- pathconf ()
- pclose ()
- perror ()
- popen ()
- posix_fadvise ()
- posix_fallocate ()
- posix_madvise ()
- posix_openpt ()
- posix_spawn ()
- posix_spawnp ()
- posix_trace_clear ()
- posix_trace_close ()
- posix_trace_create ()
- posix_trace_create_withlog ()
- posix_trace_eventtypelist_getne
- posix_trace_eventtypelist_rewin
- posix_trace_flush ()
- posix_trace_get_attr ()
- posix_trace_get_filter ()
- posix_trace_get_status ()
- posix_trace_getnext_event ()
- posix_trace_open ()
- posix_trace_rewind ()
- posix_trace_set_filter ()
- posix_trace_shutdown ()
- posix_trace_timedgetnext_event (
- posix_typed_mem_open ()
- printf ()
- pthread_rwlock_rdlock ()
- pthread_rwlock_timedrdlock ()
- pthread_rwlock_timedwrlock ()
- pthread_rwlock_wrlock ()
- putc ()
- putc_unlocked ()
- putchar ()
- , putchar_unlocked ()
- помещает ()
- pututxline ()
- putwc ()
- putwchar ()
- readdir ()
- , readdir_r ()
- удаляют ()
- , переименовывают ()
- перемотка ()
- rewinddir ()
- scanf ()
- seekdir ()
- semop ()
- setgrent ()
- sethostent ()
- setnetent ()
- setprotoent ()
- setpwent ()
- setservent ()
- setutxent ()
- статистика ()
- strerror ()
- strerror_r ()
- strftime ()
- символьная ссылка ()
- синхронизация ()
- системный журнал ()
- tmpfile ()
- tmpnam ()
- ttyname ()
- ttyname_r ()
- tzset ()
- ungetc ()
- , ungetwc ()
- удаляют связь ()
- vfprintf ()
- vfwprintf ()
- vprintf ()
- vwprintf ()
- wcsftime ()
- wordexp ()
- wprintf ()
- wscanf ()
, реализация не должна вводить точки отмены ни в какие другие функции, указанные в этом объеме Станд. IEEE 1003.1-2001.
побочные эффекты реакции на запрос отмены, в то время как приостановлено во время вызова функции совпадают с побочными эффектами, которые могут быть замечены в однопоточной программе, когда вызов к функции прерван сигналом и возвратами заданной функции [EINTR]. Любые такие побочные эффекты происходят, прежде чем любые обработчики очисток отмены называют.
Каждый раз, когда поток имеет cancelability, включил, и запрос отмены был выполнен с тем потоком как цель, и поток затем вызывает любую функцию, которая является точкой отмены (такой как pthread_testcancel (), или читайте ()), на запрос отмены нужно реагировать перед функциональными возвратами. Если поток будет иметь включенный cancelability, и запрос отмены выполнен с потоком как цель, в то время как поток приостановлен в точке отмены, то поток должен быть пробужден, и на запрос отмены нужно реагировать. Однако, если поток приостановлен в точке отмены и событии, которого он ожидает, происходит, прежде чем на запрос отмены реагируют, это является неуказанным, реагируют ли на запрос отмены или остается ли запрос отмены ожидать, и поток возобновляет нормальное выполнение.
Тьфу! Не может заставить таблицу работать очень хорошо, это смотрело хорошо в предварительном просмотре и ничем как таблица впоследствии. Посмотрите на URL для получения информации! Существует много возможных точек отмены.
Дополнительная Информация: начиная с ядра 2.6, Linux пользовался библиотекой потока NPTL, которая является совместимым POSIX, таким образом, точки отмены должны быть как выше для недавнего Linux implmentations.