OSDN Git Service

SDL_Vulkan_UnloadLibrary 新規追加 https://wiki.libsdl.org/SDL_Vulkan_UnloadLibrary
[sdl2referencejp/sdl2referencejp.git] / SDL_SemTryWait.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
2 <html lang="ja-JP">\r
3 <head>\r
4 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">\r
5 <meta http-equiv="Content-Style-Type" content="text/css">\r
6 <meta name="keywords" content="Simple Directmedia Layer SDL2.0">\r
7 <link rel="top" href="index.html" title="\83z\81[\83\80">\r
8 <link rel="parent" href="CategoryMutex.html" title="1\82Â\8fã">\r
9 <title>SDL_SemTryWait</title>\r
10 </head>\r
11 <body>\r
12 <a href="index.html">\96Ú\8e\9f</a> - <a href="ApiByCategory.html">API(\8b@\94\\95Ê)</a> - <a href="CategoryMutex.html">\93¯\8aú\83v\83\8a\83~\83e\83B\83u</a> - SDL_SemTryWait\r
13 <hr>\r
14 <h1>SDL_SemTryWait</h1>\r
15 \83Z\83}\83t\83H\82Ì\92l\82ª\90³\82Å\82 \82é\82©\92²\82×, \82»\82¤\82È\82ç\82Î\8c¸\8eZ\82·\82é\r
16 <h2>\8d\\95¶</h2>\r
17 <code>int SDL_SemTryWait(SDL_sem* sem)</code>\r
18 <h2>\88ø\90\94</h2>\r
19 <table border="1" summary="SDL_SemTryWait">\r
20 <tr><td>sem</td><td>\83Z\83}\83t\83H</td></tr>\r
21 </table>\r
22 <h2>\96ß\82è\92l</h2>\r
23 \91Ò\8b@\91\80\8dì\82É\90¬\8c÷\82µ\82½\82Æ\82«0, \83u\83\8d\83b\83N\82³\82ê\82½\82Æ\82«SDL_MUTEX_TIMEDOUT, \8e¸\94s\82Ì\82Æ\82«\95\89\82Ì\90\94\82Ì\83G\83\89\81[\83R\81[\83h\82ð\96ß\82·.\r
24 <a href="SDL_GetError.html">SDL_GetError()</a>\82Å\8fÚ\8d×\82ð\92m\82é\82±\82Æ\82ª\82Å\82«\82é.\r
25 <h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
26 <p>\r
27 <code>\r
28 <pre>\r
29 SDL_atomic_t done;\r
30 SDL_sem *sem;\r
31 \r
32 SDL_AtomicSet(&amp;done, 0);\r
33 sem = SDL_CreateSemaphore(0);\r
34 .\r
35 .\r
36 Thread A:\r
37     while (!SDL_AtomicGet(&amp;done)) {\r
38         add_data_to_queue();\r
39         SDL_SemPost(sem);\r
40     }\r
41 \r
42 Thread B:\r
43     while (!SDL_AtomicGet(&amp;done)) {\r
44         if (SDL_SemTryWait(sem) == 0 &amp;&amp; data_available()) {\r
45             get_data_from_queue();\r
46         }\r
47         ... \82±\82±\82Å\91¼\82Ì\8f\88\97\9d\82ð\8ds\82¤\r
48     }\r
49 .\r
50 .\r
51 SDL_AtomicSet(&amp;done, 1);\r
52 SDL_SemPost(sem);\r
53 wait_for_threads();\r
54 SDL_DestroySemaphore(sem);\r
55 </pre>\r
56 </code>\r
57 </p>\r
58 <h2>\8fÚ\8d×</h2>\r
59 \82±\82Ì\8aÖ\90\94\82Í\83Z\83}\83t\83Hsem\82ª\90³\82Ì\92l\82Å\82 \82é\82©\83`\83F\83b\83N\82µ, \82»\82¤\82È\82ç\82Î\83A\83g\83~\83b\83N\82É\8c¸\8eZ\82·\82é.\r
60 \83Z\83}\83t\83H\82ª\90³\82Ì\92l\82Å\82È\82¯\82ê\82Î, \8aÖ\90\94\82Í\82·\82®\82ÉSDL_MUTEX_TIMEDOUT\82ð\96ß\82·.\r
61 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
62 <a href="SDL_CreateSemaphore.html">SDL_CreateSemaphore</a><br>\r
63 <a href="SDL_DestroySemaphore.html">SDL_DestroySemaphore</a><br>\r
64 <a href="SDL_SemPost.html">SDL_SemPost</a><br>\r
65 <a href="SDL_SemValue.html">SDL_SemValue</a><br>\r
66 <a href="SDL_SemWait.html">SDL_SemWait</a><br>\r
67 <a href="SDL_SemWaitTimeout.html">SDL_SemWaitTimeout</a><br>\r
68 <h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r
69 <a href="https://wiki.libsdl.org/SDL_SemTryWait">SDL_SemTryWait - SDL Wiki</a>\r
70 <hr>\r
71 </body>\r
72 </html>\r