日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
PTHREAD_TESTCANCEL(3) FreeBSD ライブラリ関数マニュアル PTHREAD_TESTCANCEL(3) 名称 pthread_setcancelstate, pthread_setcanceltype, pthread_testcancel -- ケー パビリティ状態を設定する ライブラリ POSIX スレッドライブラリ (libpthread, -lpthread) 書式 #include <pthread.h> int pthread_setcancelstate(int state, int *oldstate); int pthread_setcanceltype(int type, int *oldtype); void pthread_testcancel(void); 解説 pthread_setcancelstate() 関数は、呼び出しスレッドのケーパビリティ状態を示 された state に不可分に設定し、oldstate が NULL でないなら、oldstate に よって参照される位置に、以前のケーパビリティ状態を返します。state のため の正当な値は、PTHREAD_CANCEL_ENABLE と PTHREAD_CANCEL_DISABLE です。 pthread_setcanceltype() 関数は、呼び出しスレッドのケーパビリティタイプを 示された type に不可分に設定し、oldtype が NULL でないなら、oldtype に よって参照される位置に、以前のケーパビリティタイプを返します。type のため の正当な値は、PTHREAD_CANCEL_DEFERRED と PTHREAD_CANCEL_ASYNCHRONOUS で す。 main() が最初に呼び出されたスレッドを含む、任意の新しく作成されたスレッド のキャンセル (取り消し) 可能性状態とタイプは、それぞれ PTHREAD_CANCEL_ENABLE と PTHREAD_CANCEL_DEFERRED です。 pthread_testcancel() 関数は、呼び出しスレッドでキャンセルポイントを作成し ます。キャンセル可能性が無効になるなら、pthread_testcancel() 関数には、影 響がありません。 キャンセル (取り消し) 可能性状態 スレッドのキャンセル可能性状態は、キャンセル要求の受領でとられる行動を決 定します。スレッドは、多くの方法でキャンセルを制御できます。 各スレッドは、2 つのビットでコード化されるそれ自身の ``キャンセル (取り消 し) 可能性状態'' を維持します。 キャンセル (取り消し) 可能性有効 キャンセル可能性が PTHREAD_CANCEL_DISABLE であるとき、ターゲット のスレッドに対するキャンセル要求は、保留中 (pending) として保持さ れます。 キャンセル (取り消し) 可能性タイプ キャンセル可能性が有効とされ、キャンセル可能性タイプが PTHREAD_CANCEL_ASYNCHRONOUS であるとき、新しいか、または保留中の キャンセル要求は、いつでも作動されます。キャンセル可能性が有効と され、キャンセル可能性タイプが PTHREAD_CANCEL_DEFERRED であると き、キャンセルポイント (以下を参照) が到達するまで、キャンセル要 求は、保留中として保持されます。キャンセル可能性が無効になるな ら、キャンセル要求がすべて保留中で保持されるとともに、キャンセル 可能性タイプの設定は、直ちに影響はありません。しかしながら、一 度、キャンセル可能性は、再び有効になります、新しいタイプは、影響 があるでしょう。 キャンセル (取り消し) ポイント スレッドが次の関数を実行している時、キャンセルポイントが生じます: accept() accept4() aio_suspend() connect() clock_nanosleep() close() creat() fcntl() fcntl() 関数は、cmd が F_SETLKW であるなら、 キャンセルポイントです。 fdatasync() fsync() kevent() kevent() 関数は、それが潜在的にブロックされて いるなら、たとえば、nevents 引数が 0 以外であ るときなど、取り消しポイントです。 mq_receive() mq_send() mq_timedreceive() mq_timedsend() msync() nanosleep() open() openat() pause() poll() ppoll() pselect() pthread_cond_timedwait() pthread_cond_wait() pthread_join() pthread_testcancel() read() readv() recv() recvfrom() recvmsg() select() sem_timedwait() sem_clockwait_np() sem_wait() send() sendmsg() sendto() sigsuspend() sigtimedwait() sigwaitinfo() sigwait() sleep() system() tcdrain() usleep() wait() wait3() wait4() wait6() waitid() waitpid() write() writev() 注 pthread_setcancelstate() と pthread_setcanceltype() 関数は、スレッドが非 同期にキャンセルされるかもしれないポイントを制御するために使用されます。 キャンセル制御がモジュール化方法で使用可能なために、いくつかの規則が続か なければなりません。 この議論の目的のために、オブジェクトを手続きの一般化であると考えてくださ い。それは、1 ユニットとして書かれ、オブジェクトによって知られていないク ライアントによって呼ばれた 1 セットの手続きおよびグローバル変数です。オブ ジェクトは、他のオブジェクトに依存するかもしれません。 最初に、キャンセル可能性は、明示的に利用可能にされなかったオブジェクトの エントリで単に無効になるべきです。オブジェクトからの出口においては、キャ ンセル可能性状態が、オブジェクトのエントリのその値に常に戻されるべきで す。 これは、モジュール引数から続きます。オブジェクト (あるいはそのオブジェク トを使用するオブジェクトのクライアント) のクライアントが、無効にされた キャンセル可能性があるなら、それは、クライアントが、スレッドがアクション のあるシーケンスを実行する間にキャンセルされるなら、クリーンアップする方 法について心配したくないからです。オブジェクトがそのような状態で呼ばれ、 それがキャンセル可能性を有効にする、また、キャンセル要求がそのスレッドに は保留中であるなら、スレッドは、無効にしたクライアントの希望に反してキャ ンセルされるでしょう。 2 番目に、キャンセル可能性タイプは、オブジェクトへのエントリで deferred または asynchronous だったことを明示的に設定できます。しかし、キャンセル 可能性状態でのように、オブジェクトからの出口においては、そのキャンセル可 能性タイプは、オブジェクトへのエントリのその値に常に戻されるべきです。 最後に、非同期にキャンセル可能であるスレッドからキャンセルセーフな関数だ けを、呼び出すことができます。 戻り値 成功するなら、pthread_setcancelstate() と pthread_setcanceltype() 関数 は、0 を返します。そうでなければ、エラーを示すためにエラー番号が返されま す。 エラー 関数 pthread_setcancelstate() は、次の場合に失敗します: [EINVAL] 指定された状態が、PTHREAD_CANCEL_ENABLE または PTHREAD_CANCEL_DISABLE ではありません。 関数 pthread_setcanceltype() は、次の場合に失敗します: [EINVAL] 指定された状態が、PTHREAD_CANCEL_DEFERRED または PTHREAD_CANCEL_ASYNCHRONOUS ではありません。 関連項目 pthread_cancel(3) 規格 pthread_testcancel() 関数は、ISO/IEC 9945-1:1996 (``POSIX.1'') に適合して います。標準によって、実装は、さらに多くの関数のキャンセルポイントを作る ことができます。 作者 このマニュアルページは、pthread_cancel(3) の OpenBSD の実装のために David Leonard <d@openbsd.org> によって書かれました。 FreeBSD 11.4 March 18, 2017 FreeBSD 11.4