Каковы точки отмены POSIX?

18
задан Davy M went to fund Monica 1 August 2018 в 00:02
поделиться

2 ответа

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 для получения информации! Существует много возможных точек отмены.

21
ответ дан 30 November 2019 в 08:10
поделиться

Дополнительная Информация: начиная с ядра 2.6, Linux пользовался библиотекой потока NPTL, которая является совместимым POSIX, таким образом, точки отмены должны быть как выше для недавнего Linux implmentations.

http://www.ddj.com/linux-open-source/184406204

3
ответ дан 30 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: