Man page - pthread_mutexattr_init(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

PTHREAD_MUTEXATTR

名 前
書 åŧ
čĒŦ 明
čŋ” り 値
エ ナ ãƒŧ
著 者
é–ĸ 逪 項 į›Ž

名 前

pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_settype, pthread_mutexattr_gettype - mutex äŊœ 成 時 ぎ åąž 性

書 åŧ

#include <pthread.h>

int pthread_mutexattr_init(pthread_mutexattr_t * attr );

int pthread_mutexattr_destroy(pthread_mutexattr_t * attr );

int pthread_mutexattr_settype(pthread_mutexattr_t * attr , int kind );

int pthread_mutexattr_gettype(const pthread_mutexattr_t * attr , int * kind );

čĒŦ 明

mutex ぎ åąž 性 は mutex äŊœ 成 時 ãĢ 、 pthread_mutex_init (3) ぎ įŦŦ 2 åŧ• 数 と し ãĻ mutex åąž 性 ã‚Ē ブ ジ ェ ク ト を æ¸Ą す こ と で 指 厚 す る こ と が で き る 。 NULL を æ¸Ą す こ と は 、 す ず ãĻ ぎ åąž 性 が デ フ り ãƒĢ ト 値 ãĢ 設 厚 さ れ た mutex åąž 性 ã‚Ē ブ ジ ェ ク ト を æ¸Ą す こ と と 同 į­‰ で あ る 。

pthread_mutexattr_init は mutex åąž 性 ã‚Ē ブ ジ ェ ク ト attr を 初 期 化 し 、 す ず ãĻ ぎ åąž 性 を デ フ り ãƒĢ ト ぎ 値 ãĢ 設 厚 す る 。

pthread_mutexattr_destroy は mutex åąž 性 ã‚Ē ブ ジ ェ ク ト を į ´ 媊 す る 。 į ´ 媊 さ れ た mutex åąž 性 ã‚Ē ブ ジ ェ ク ト は 再 ãŗ 初 期 化 さ れ る ぞ で 再 äŊŋ ᔍ し ãĻ は ãĒ ら ãĒ い 。 pthread_mutexattr_destroy は LinuxThreads ぎ 原 čŖ… で は äŊ• も し ãĒ い 。

LinuxThreads は た だ 1 つ ぎ mutex åąž 性 ãĢ 寞 åŋœ し ãĻ い る 。 そ れ は mutex į¨Ž åˆĨ (mutex kind) で 、 「 速 い (fast) 」 mutex を 襨 す PTHREAD_MUTEX_FAST_NP か 、 「 再 帰 įš„ ãĒ (recursive) 」 mutex を 襨 す PTHREAD_MUTEX_RECURSIVE_NP 、 「 エ ナ ãƒŧ 検 æŸģ を 行 ãĒ う (error checking) 」 mutex を 襨 す PTHREAD_MUTEX_ERRORCHECK_NP ぎ い ず れ か ぎ 値 を と る 。 NP と い う æŽĨ å°ž 辞 が į¤ē す よ う ãĢ 、 こ れ は POSIX 標 æē– ãĢ 寞 す る ポ ãƒŧ ã‚ŋ ブ ãƒĢ で ãĒ い æ‹Ą åŧĩ で 、 ポ ãƒŧ ã‚ŋ ブ ãƒĢ ãĒ プ ロ グ ナ ム で は ᔍ い る ず き で ãĒ い 。

mutex į¨Ž åˆĨ は 、 あ る ゚ ãƒŦ ッ ド が č‡Ē 分 č‡Ē čēĢ ã§ pthread_mutex_lock (3) で す で ãĢ äŋ 持 し ãĻ い る mutex を ロ ッ ク し よ う と し た と き ãĢ 、 äŊ• が čĩˇ こ る か を æąē 厚 す る 。 mutex が 「 速 い (fast) 」 と い う į¨Ž åˆĨ ぎ å ´ 合 、 pthread_mutex_lock (3) は 単 ãĢ å‘ŧ ãŗ å‡ē し ゚ ãƒŦ ッ ド を æ°¸ 遠 ãĢ 停 æ­ĸ さ せ る 。 mutex が 「 エ ナ ãƒŧ 検 æŸģ を 行 ãĒ う (error checking) 」 と い う į¨Ž åˆĨ ぎ å ´ 合 、 pthread_mutex_lock (3) は エ ナ ãƒŧ ã‚ŗ ãƒŧ ド EDEADLK と と も ãĢ į›´ ãĄ ãĢ čŋ” る 。 mutex が 「 再 帰 įš„ ãĒ (recursive) 」 と い う į¨Ž åˆĨ ぎ å ´ 合 、 pthread_mutex_lock (3) ぎ å‘ŧ ãŗ å‡ē し は 成 功 ぎ čŋ” り 値 と と も ãĢ į›´ ãĄ ãĢ čŋ” る 。 mutex を äŋ 持 し ãĻ い る ゚ ãƒŦ ッ ド が äŊ• 回 ロ ッ ク し た か が そ ぎ mutex ãĢ 記 錞 さ れ る 。 äŋ 持 し ãĻ い る ゚ ãƒŦ ッ ド が ロ ッ ク č§Ŗ 除 įŠļ 態 ãĢ æˆģ る た め ãĢ は 、 同 じ 回 数 だ け pthread_mutex_unlock (3) を å‘ŧ ãŗ å‡ē さ ãĒ け れ ば ãĒ ら ãĒ い 。

デ フ り ãƒĢ ト ぎ mutex į¨Ž åˆĨ は 「 速 い (fast) 」 、 す ãĒ わ ãĄ PTHREAD_MUTEX_FAST_NP で あ る 。

pthread_mutexattr_settype は attr ぎ mutex į¨Ž åˆĨ を 襨 す åąž 性 を kind で į¤ē さ れ る 値 ãĢ 設 厚 す る 。

pthread_mutexattr_gettype は attr ぎ mutex į¨Ž åˆĨ を 襨 す åąž 性 を 取 åž— し 、 kind で 指 し į¤ē さ れ る 領 域 ãĢ æ ŧ į´ す る 。

čŋ” り 値

pthread_mutexattr_init お よ ãŗ pthread_mutexattr_destroy 、 pthread_mutexattr_gettype は 常 ãĢ 0 を čŋ” す 。

pthread_mutexattr_settype は 成 功 す る と 0 を 、 エ ナ ãƒŧ ぎ å ´ 合 非 0 ぎ エ ナ ãƒŧ ã‚ŗ ãƒŧ ド を čŋ” す 。

エ ナ ãƒŧ

エ ナ ãƒŧ ぎ と き 、 pthread_mutexattr_settype は æŦĄ ぎ よ う ãĒ エ ナ ãƒŧ ã‚ŗ ãƒŧ ド を čŋ” す :

EINVAL

kind が PTHREAD_MUTEX_FAST_NP お よ ãŗ PTHREAD_MUTEX_RECURSIVE_NP 、 PTHREAD_MUTEX_ERRORCHECK_NP ぎ い ず れ で も ãĒ い 。

著 者

Xavier Leroy <Xavier.Leroy@inria.fr>

é–ĸ 逪 項 į›Ž

pthread_mutex_init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3).

[荺 æŗ¨ 1] glibc-linuxthreads ぎ 最 新 ぎ ド キ ãƒĨ ãƒĄ ãƒŗ ト は Texinfo åŊĸ åŧ で 提 供 さ れ ãĻ い る 。 上 ぎ 記 čŋ° は glibc-linuxthreads-2.2 äģĨ 降 で は æ­Ŗ し く ãĒ い 。 äģĨ 下 は glibc-linuxthreads-2.3.1 ぎ Texinfo フ ã‚Ą イ ãƒĢ か ら ぎ åŧ• ᔍ で あ る 。 į¨Ž åˆĨ (kind) が 型 (type) ãĢ 変 更 さ れ ãĻ い る 。

LinuxThreads は た だ 1 つ ぎ mutex åąž 性 ãĢ 寞 åŋœ し ãĻ い る 。 そ れ は mutex 型 (mutex type) で 、 「 速 い (fast) 」 mutex を 襨 す PTHREAD_MUTEX_ADAPTIVE_NP か 、 「 再 帰 įš„ ãĒ (recursive) 」 mutex を 襨 す PTHREAD_MUTEX_RECURSIVE_NP 、 「 時 åˆģ 情 å ą つ き (timed) 」 mutex を 襨 す PTHREAD_MUTEX_TIMED_NP 、 「 エ ナ ãƒŧ 検 æŸģ を 行 ãĒ う (error checking) 」 mutex を 襨 す PTHREAD_MUTEX_ERRORCHECK_NP ぎ い ず れ か ぎ 値 を と る 。 NP と い う æŽĨ å°ž 辞 が į¤ē す よ う ãĢ 、 こ れ は POSIX 標 æē– ãĢ 寞 す る ポ ãƒŧ ã‚ŋ ブ ãƒĢ で ãĒ い æ‹Ą åŧĩ で 、 ポ ãƒŧ ã‚ŋ ブ ãƒĢ ãĒ プ ロ グ ナ ム で は ᔍ い る ず き で ãĒ い 。

mutex 型 は 、 あ る ゚ ãƒŦ ッ ド が č‡Ē 分 č‡Ē čēĢ ã§ pthread_mutex_lock (3) で す で ãĢ äŋ 持 し ãĻ い る mutex を ロ ッ ク し よ う と し た と き ãĢ 、 äŊ• が čĩˇ こ る か を æąē 厚 す る 。 mutex が 「 速 い (fast) 」 と い う 型 ぎ å ´ 合 、 pthread_mutex_lock (3) は 単 ãĢ å‘ŧ ãŗ å‡ē し ゚ ãƒŦ ッ ド を æ°¸ 遠 ãĢ 停 æ­ĸ さ せ る 。 mutex が 「 エ ナ ãƒŧ 検 æŸģ を 行 ãĒ う (error checking) 」 と い う 型 ぎ å ´ 合 、 pthread_mutex_lock (3) は エ ナ ãƒŧ ã‚ŗ ãƒŧ ド EDEADLK と と も ãĢ į›´ ãĄ ãĢ čŋ” る 。 mutex が 「 再 帰 įš„ ãĒ (recursive) 」 と い う 型 ぎ å ´ 合 、 pthread_mutex_lock (3) ぎ å‘ŧ ãŗ å‡ē し は 成 功 ぎ čŋ” り 値 と と も ãĢ į›´ ãĄ ãĢ čŋ” る 。 mutex を äŋ 持 し ãĻ い る ゚ ãƒŦ ッ ド が äŊ• 回 ロ ッ ク し た か が そ ぎ mutex ãĢ 記 錞 さ れ る 。 äŋ 持 し ãĻ い る ゚ ãƒŦ ッ ド が ロ ッ ク č§Ŗ 除 įŠļ 態 ãĢ æˆģ る た め ãĢ は 、 同 じ 回 数 だ け pthread_mutex_unlock (3) を å‘ŧ ãŗ å‡ē さ ãĒ け れ ば ãĒ ら ãĒ い 。

デ フ り ãƒĢ ト ぎ mutex 型 は 「 時 åˆģ 情 å ą つ き (timed) 」 、 す ãĒ わ ãĄ PTHREAD_MUTEX_TIMED_NP で あ る 。

[荺 æŗ¨ 2] LinuxThreads で は mutex を プ ロ ã‚ģ ゚ 間 で å…ą 有 す る こ と は で き ãĒ い 。 glibc-linuxthreads-2.2 äģĨ 降 、 æŦĄ ぎ 2 つ ぎ é–ĸ 数 が čŋŊ 加 さ れ ãĻ い る 。

int pthread_mutexattr_getpshared(const pthread_mutexattr_t * attr , int * pshared );

pshared で 指 し į¤ē さ れ る 領 域 ãĢ PTHREAD_PROCESS_PRIVATE を æ ŧ į´ し 、 常 ãĢ 0 を čŋ” す 。

int pthread_mutexattr_setpshared(pthread_mutexattr_t * attr , int pshared );

pshared が PTHREAD_PROCESS_PRIVATE お よ ãŗ PTHREAD_PROCESS_SHARED ぎ い ず れ で も ãĒ い å ´ 合 、 EINVAL を čŋ” す 。 pshared が PTHREAD_PROCESS_SHARED ぎ å ´ 合 、 ENOSYS を čŋ” す 。 そ れ äģĨ 外 ぎ å ´ 合 、 0 を čŋ” す 。