FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 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.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | 書式 | 解説 | 戻り値 | エラー | 関連項目 | 歴史 | 作者
SLEEP(9)               FreeBSD カーネル開発者マニュアル               SLEEP(9)

名称
     msleep, msleep_sbt, msleep_spin, msleep_spin_sbt, pause, pause_sig,
     pause_sbt, tsleep, tsleep_sbt, wakeup -- イベントのウェート (wait)

書式
     #include <sys/param.h>
     #include <sys/systm.h>
     #include <sys/proc.h>

     int
     msleep(void *chan, struct mtx *mtx, int priority, const char *wmesg,
         int timo);

     int
     msleep_sbt(void *chan, struct mtx *mtx, int priority, const char *wmesg,
         sbintime_t sbt, sbintime_t pr, int flags);

     int
     msleep_spin(void *chan, struct mtx *mtx, const char *wmesg, int timo);

     int
     msleep_spin_sbt(void *chan, struct mtx *mtx, const char *wmesg,
         sbintime_t sbt, sbintime_t pr, int flags);

     int
     pause(const char *wmesg, int timo);

     int
     pause_sig(const char *wmesg, int timo);

     int
     pause_sbt(const char *wmesg, sbintime_t sbt, sbintime_t pr, int flags);

     int
     tsleep(void *chan, int priority, const char *wmesg, int timo);

     int
     tsleep_sbt(void *chan, int priority, const char *wmesg, sbintime_t sbt,
         sbintime_t pr, int flags);

     void
     wakeup(void *chan);

     void
     wakeup_one(void *chan);

解説
     関数 tsleep(), msleep(), msleep_spin(), pause(), pause_sig(),
     pause_sbt(), wakeup() と wakeup_one() は、イベントに基づいたスレッドのブ
     ロッキングを取り扱います。スレッドが外部のイベントを待たなければならない
     なら、それは、tsleep(), msleep(), msleep_spin(), pause(), pause_sig() ま
     たは pause_sbt() によってスリープ状態に置かれます。また、スレッドは、ロッ
     クの基本的なスリープルーチン mtx_sleep(9), rw_sleep(9) または sx_sleep(9)
     の 1 つを使用してウェートされます。

     パラメータ chan は、スレッドがスリープ状態に置かれているイベントを識別す
     るユニークな任意のアドレスです。単一の chan でスリープしているすべてのス
     レッドは、wakeup() によって後で起こされ、スレッドがブロックされているリ
     ソースが現在利用可能であることを示すために、割り込みルーチンの中からしば
     しば呼び出されます。

     パラメータ priority は、いくつかのオプションのフラグと同様にスレッドのた
     めの新しい優先権を指定します。新しい優先権が 0 でないなら、スレッドは、再
     開するとき、指定された priority で実行可能とされます。PZERO は、互換性の
     ためだけであるので、決して使用されるべきではありません。0 の新しい優先権
     は、再び実行可能とするとき、スレッドの現在の優先権を使用することを意味し
     ます。

     priority が PCATCH フラグを含んでいるなら、保留中のシグナルは、スリープを
     割り込むことが許可され、そうでなければ、保留中のシグナルは、スリープの間
     無視されます。PCATCH が設定され、シグナルが保留中になり、現在のシステム
     コールが再開されるべきであり、可能であるなら、ERESTART が返され、システム
     コールが (EINTR を返えす) シグナルによって割り込まれるべきであるなら、
     EINTR が返されます。

     パラメータ wmesg は、ps(1) のようなツールのためのスリープ状態について説明
     する文字列です。任意の文字列を表示するためのそれらのプログラムの制限され
     た空間のために、このメッセージは、6 文字より長くなるべきではありません。

     パラメータ timo は、スリープのタイムアウトを指定します。timo が 0 でない
     なら、スレッドは、多くても timo / hz 秒の間スリープします。タイムアウトの
     期限が切れるなら、スリープ関数は、EWOULDBLOCK を返します。

     msleep_sbt(), msleep_spin_sbt(), pause_sbt() と tsleep_sbt() 関数は、timo
     の代わりに sbt 引数を取ります。それによって、呼び出し側は、sbintime_t の
     形式のより高い解像度で相対的または絶対的な起きる (wakeup) 時間を指定する
     ことができます。パラメータ pr によって、呼び出し側は、必要とされる絶対的
     なイベント正確さを指定することができます。パラメータ flags によって、呼び
     出し側は、追加の callout_reset_sbt() フラグを渡すことができます。

     msleep(), msleep_spin() を含むスリープ関数のいくつかとロックを行う基本的
     なスリープルーチンは、追加のロックパラメータを指定します。ロックは、ス
     リープの前に解放され、スリープルーチンが戻る前に、再獲得されます。
     priority が PDROP フラグを含んでいるなら、ロックは、戻る前に再獲得されま
     せん。ロックは、不可分に状態をチェックすることができ、状態への変化、また
     は関連するウェークアップ (wakeup) を逃さずに現在のスレッドをサスペンドす
     ることができることを保証するために使用されます。さらに、すべてのスリープ
     ルーチンは、スレッドがサスペンドされている間に (繰り返されたとしても)
     Giant mutex (ミューテックス) を完全に落として、関数が戻る前に Giant mutex
     を再獲得します。Giant mutex が落されるロックとして指定されることに注意し
     てください。しかしながら、その場合には、PDROP フラグは、許可されません。

     失われたウェークアップ (wakeup) を避けるために、ロックが競合から守るため
     に使用されるべきであるか、またはタイムアウトが、失われたウェークアップ
     (wakeup) のためにディレー (遅れ) の上限に置くために指定されるべきです。結
     果として、tsleep() 関数は、Giant mutex が保持されているときのみ、0 のタイ
     ムアウトで呼び出されるべきです。

     msleep() 関数は、mtx がデフォルト、すなわち、non-spin, mutex、を参照する
     ことを必要とします。その使用は、同一の振る舞いを提供する mtx_sleep(9) を
     支持して非推奨です。

     msleep_spin() 関数は、mtx が、spin mutex を参照することを必要とします。
     msleep_spin() 関数は、priority パラメータを受け付けません、したがって、現
     在のスレッドの優先権の変更、PDROP フラグ、または PCATCH フラグを通してシ
     グナルのキャッチは、サポートしません。

     pause() 関数は、示されたタイムアウトのための現在のスレッドの実行をサスペ
     ンドさせる tsleep() 周りのラッパです。シグナル、または wakeup() または
     wakeup_one() への呼び出しによって早期にスレッドを起こすことができません。
     pause_sig() 関数は、シグナルによって早く起こすことができる pause() の変異
     型です。

     wakeup_one() 関数は、パラメータ chan でスリープしているキューの中の最初の
     スレッドを実行可能とします。これは、多くのスレッドが同じアドレスでスリー
     プしていいるとき、ロードを減少させますが、実行可能とされるとき、それらの
     1 つだけが、実際に役に立つ作業を行うことができます。

     それが動作している方法のために、wakeup_one() 関数は、関連するスレッドだけ
     が特定の chan アドレスでスリープすることを必要とします。ユニークな chan
     値を選択することは、プログラマの責任です。より古い wakeup() 関数は、これ
     を必要としませんでした、しかしながら、chan 値を共有するスレッドのために決
     して良い習慣ではありませんでした。wakeup() から wakeup_one() まで変換する
     とき、同じ chan でウェートしている他のスレッドがないことを保証するために
     特別の注意を払ってください。

     timo または sbt によって与えられたタイムアウトが、絶対的なリアルタイムク
     ロック値に基づいているなら、スレッドは、RTC を読み込む前に、グローバルな
     rtc_generation をその td_rtcgen メンバにコピーするべきです。リアルタイム
     のクロックが調整されるなら、これらの関数は、td_rtcgen を 0 に設定し、0 で
     返ります。呼び出し側は、新しい RTC 値でその適用を再考するべきです。

戻り値
     wakeup() と wakeup_one() への呼び出しで起こされるとき、シグナルが保留中
     (pending) であり、PCATCH が指定されるなら、0 以外のエラーコードが返されま
     す。スレッドが wakeup() または wakeup_one() への呼び出しで起こされるな
     ら、msleep(), msleep_spin(), tsleep() とロックがある基本的なスリープ関数
     は、0 を返します。また、リアルタイムクロックが調整されるとき、0 が返され
     ます。td_rtcgen に関して上記を参照してください。そうでなければ、0 以外の
     エラーコードが返されます。

エラー
     msleep(), msleep_spin(), tsleep() とロックがある基本的なスリープ関数は、
     次の場合に失敗します:

     [EINTR]            PCATCH フラグが指定され、シグナルがキャッチされ、シス
                        テムコールは、割り込まれるべきです。

     [ERESTART]         PCATCH フラグが指定され、シグナルがキャッチされ、シス
                        テムコールは、再開されるべきです。

     [EWOULDBLOCK]      0 以外のタイムアウトが指定され、タイムアウトは、期限が
                        切れました。

関連項目
     ps(1), locking(9), malloc(9), mi_switch(9), mtx_sleep(9), rw_sleep(9),
     sx_sleep(9), timeout(9)

歴史
     関数 sleep() と wakeup() は、Version 1 AT&T UNIX に存在していました。それ
     らは、たぶん UNIX の前の PDP-7 バージョンも存在していました。それらは、基
     本的なプロセス同期モデルでした。

     tsleep() 関数は、4.4BSD で登場し、パラメータ wmesgtimo を追加しまし
     た。sleep() 関数は、FreeBSD 2.2 で削除されました。wakeup_one() 関数は、
     FreeBSD 2.2 で登場しました。msleep() 関数は、FreeBSD 5.0 で登場し、
     msleep_spin() 関数は、FreeBSD 6.2 で登場しました。pause() 関数は、
     FreeBSD 7.0 で登場しました。pause_sig() 関数は、FreeBSD 12.0 で登場しまし
     た。

作者
     このマニュアルページは、J";rg Wunsch <joerg@FreeBSD.org> によって書かれま
     した。

FreeBSD 11.2                     March 4, 2018                    FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索