OSDN Git Service

SDL_atomic_t サンプルコードを修正 https://wiki.libsdl.org/SDL_atomic_t?action=diff&rev1=3&rev2=4
[sdl2referencejp/sdl2referencejp.git] / SDL_CondBroadcast.html
index 349642d..0ef80ec 100644 (file)
 <h2>\96ß\82è\92l</h2>\r
 \90¬\8c÷\82Ì\82Æ\82«0, \8e¸\94s\82Ì\82Æ\82«\95\89\82Ì\90\94\82Ì\83G\83\89\81[\83R\81[\83h\82ð\96ß\82·.\r
 <a href="SDL_GetError.html">SDL_GetError()</a>\82Å\8fÚ\8d×\82ð\92m\82é\82±\82Æ\82ª\82Å\82«\82é.\r
+<h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
+<p>\r
+<code>\r
+<pre>\r
+SDL_bool condition = SDL_FALSE;\r
+SDL_mutex *lock;\r
+SDL_cond *cond;\r
+\r
+lock = SDL_CreateMutex();\r
+cond = SDL_CreateCond();\r
+.\r
+.\r
+Thread A:\r
+    SDL_LockMutex(lock);\r
+    while (!condition) {\r
+        SDL_CondWait(cond, lock);\r
+    }\r
+    SDL_UnlockMutex(lock);\r
+\r
+Thread B:\r
+    SDL_LockMutex(lock);\r
+    while (!condition) {\r
+        SDL_CondWait(cond, lock);\r
+    }\r
+    SDL_UnlockMutex(lock);\r
+\r
+Thread C:\r
+    SDL_LockMutex(lock);\r
+    ...\r
+    condition = SDL_TRUE;\r
+    ...\r
+    SDL_CondBroadcast(cond);\r
+    SDL_UnlockMutex(lock);\r
+.\r
+.\r
+SDL_DestroyCond(cond);\r
+SDL_DestroyMutex(lock);\r
+</pre>\r
+</code>\r
+</p>\r
 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
-<a href="SDL_CreateCond.html">SDL_CreateCond</a><br>\r
 <a href="SDL_CondSignal.html">SDL_CondSignal</a><br>\r
 <a href="SDL_CondWait.html">SDL_CondWait</a><br>\r
 <a href="SDL_CondWaitTimeout.html">SDL_CondWaitTimeout</a><br>\r
+<a href="SDL_CreateCond.html">SDL_CreateCond</a><br>\r
 <a href="SDL_DestroyCond.html">SDL_DestroyCond</a><br>\r
 <h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r
 <a href="https://wiki.libsdl.org/SDL_CondBroadcast">SDL_CondBroadcast - SDL Wiki</a>\r