glib2 2.2.4-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2228) hide show
  1. checksums.yaml +7 -0
  2. data/README +40 -0
  3. data/Rakefile +157 -0
  4. data/ext/glib2/depend +18 -0
  5. data/ext/glib2/extconf.rb +80 -0
  6. data/ext/glib2/glib2.def +147 -0
  7. data/ext/glib2/rbgcompat.h +29 -0
  8. data/ext/glib2/rbglib.c +1158 -0
  9. data/ext/glib2/rbglib.h +202 -0
  10. data/ext/glib2/rbglib2conversions.h +57 -0
  11. data/ext/glib2/rbglib_bookmarkfile.c +546 -0
  12. data/ext/glib2/rbglib_convert.c +197 -0
  13. data/ext/glib2/rbglib_error.c +164 -0
  14. data/ext/glib2/rbglib_fileutils.c +119 -0
  15. data/ext/glib2/rbglib_gettext.c +48 -0
  16. data/ext/glib2/rbglib_i18n.c +40 -0
  17. data/ext/glib2/rbglib_int64.c +165 -0
  18. data/ext/glib2/rbglib_io_constants.c +30 -0
  19. data/ext/glib2/rbglib_iochannel.c +824 -0
  20. data/ext/glib2/rbglib_iochannel_win32_socket.c +56 -0
  21. data/ext/glib2/rbglib_iochannelerror.c +49 -0
  22. data/ext/glib2/rbglib_keyfile.c +755 -0
  23. data/ext/glib2/rbglib_maincontext.c +565 -0
  24. data/ext/glib2/rbglib_mainloop.c +121 -0
  25. data/ext/glib2/rbglib_messages.c +148 -0
  26. data/ext/glib2/rbglib_pollfd.c +112 -0
  27. data/ext/glib2/rbglib_shell.c +64 -0
  28. data/ext/glib2/rbglib_shellerror.c +34 -0
  29. data/ext/glib2/rbglib_source.c +242 -0
  30. data/ext/glib2/rbglib_spawn.c +245 -0
  31. data/ext/glib2/rbglib_spawnerror.c +53 -0
  32. data/ext/glib2/rbglib_threads.c +61 -0
  33. data/ext/glib2/rbglib_timer.c +127 -0
  34. data/ext/glib2/rbglib_ucs4.c +79 -0
  35. data/ext/glib2/rbglib_unichar.c +201 -0
  36. data/ext/glib2/rbglib_unicode.c +90 -0
  37. data/ext/glib2/rbglib_utf16.c +78 -0
  38. data/ext/glib2/rbglib_utf8.c +257 -0
  39. data/ext/glib2/rbglib_utils.c +339 -0
  40. data/ext/glib2/rbglib_win32.c +112 -0
  41. data/ext/glib2/rbglibdeprecated.c +56 -0
  42. data/ext/glib2/rbglibdeprecated.h +34 -0
  43. data/ext/glib2/rbgobj_boxed.c +295 -0
  44. data/ext/glib2/rbgobj_closure.c +345 -0
  45. data/ext/glib2/rbgobj_convert.c +195 -0
  46. data/ext/glib2/rbgobj_enumflags.c +109 -0
  47. data/ext/glib2/rbgobj_enums.c +401 -0
  48. data/ext/glib2/rbgobj_flags.c +522 -0
  49. data/ext/glib2/rbgobj_object.c +885 -0
  50. data/ext/glib2/rbgobj_param.c +378 -0
  51. data/ext/glib2/rbgobj_paramspecs.c +311 -0
  52. data/ext/glib2/rbgobj_signal.c +978 -0
  53. data/ext/glib2/rbgobj_strv.c +44 -0
  54. data/ext/glib2/rbgobj_type.c +846 -0
  55. data/ext/glib2/rbgobj_typeinstance.c +128 -0
  56. data/ext/glib2/rbgobj_typeinterface.c +149 -0
  57. data/ext/glib2/rbgobj_typemodule.c +72 -0
  58. data/ext/glib2/rbgobj_typeplugin.c +57 -0
  59. data/ext/glib2/rbgobj_value.c +395 -0
  60. data/ext/glib2/rbgobj_valuearray.c +100 -0
  61. data/ext/glib2/rbgobj_valuetypes.c +243 -0
  62. data/ext/glib2/rbgobject.c +387 -0
  63. data/ext/glib2/rbgobject.h +301 -0
  64. data/ext/glib2/rbgprivate.h +178 -0
  65. data/ext/glib2/rbgutil.c +183 -0
  66. data/ext/glib2/rbgutil.h +119 -0
  67. data/ext/glib2/rbgutil_callback.c +272 -0
  68. data/ext/glib2/rbgutil_list.c +173 -0
  69. data/ext/glib2/rbgutil_list.h +85 -0
  70. data/ext/glib2/rbgutildeprecated.c +252 -0
  71. data/ext/glib2/rbgutildeprecated.h +63 -0
  72. data/extconf.rb +49 -0
  73. data/lib/2.0/glib2.so +0 -0
  74. data/lib/2.1/glib2.so +0 -0
  75. data/lib/2.2/glib2.so +0 -0
  76. data/lib/glib-mkenums.rb +214 -0
  77. data/lib/glib2.rb +231 -0
  78. data/lib/glib2/deprecatable.rb +153 -0
  79. data/lib/gnome2-raketask.rb +8 -0
  80. data/lib/gnome2/rake/external-package.rb +227 -0
  81. data/lib/gnome2/rake/native-binary-build-task.rb +129 -0
  82. data/lib/gnome2/rake/package-task.rb +273 -0
  83. data/lib/gnome2/rake/package.rb +152 -0
  84. data/lib/gnome2/rake/source-download-task.rb +82 -0
  85. data/lib/gnome2/rake/windows-binary-build-task.rb +303 -0
  86. data/lib/gnome2/rake/windows-binary-download-task.rb +181 -0
  87. data/lib/mkmf-gnome2.rb +637 -0
  88. data/sample/bookmarkfile.rb +66 -0
  89. data/sample/idle.rb +41 -0
  90. data/sample/iochannel.rb +44 -0
  91. data/sample/keyfile.rb +62 -0
  92. data/sample/shell.rb +36 -0
  93. data/sample/spawn.rb +25 -0
  94. data/sample/timeout.rb +28 -0
  95. data/sample/timeout2.rb +35 -0
  96. data/sample/timer.rb +40 -0
  97. data/sample/type-register.rb +103 -0
  98. data/sample/type-register2.rb +104 -0
  99. data/sample/utils.rb +54 -0
  100. data/test/glib-test-init.rb +5 -0
  101. data/test/glib-test-utils.rb +12 -0
  102. data/test/run-test.rb +21 -0
  103. data/test/test_enum.rb +99 -0
  104. data/test/test_file_utils.rb +53 -0
  105. data/test/test_flags.rb +129 -0
  106. data/test/test_glib2.rb +122 -0
  107. data/test/test_iochannel.rb +275 -0
  108. data/test/test_key_file.rb +42 -0
  109. data/test/test_mkenums.rb +25 -0
  110. data/test/test_poll_fd.rb +26 -0
  111. data/test/test_signal.rb +20 -0
  112. data/test/test_source.rb +63 -0
  113. data/test/test_spawn.rb +33 -0
  114. data/test/test_timeout.rb +28 -0
  115. data/test/test_unicode.rb +394 -0
  116. data/test/test_utils.rb +37 -0
  117. data/test/test_value.rb +31 -0
  118. data/test/test_win32.rb +13 -0
  119. data/vendor/local/bin/certtool.exe +0 -0
  120. data/vendor/local/bin/danetool.exe +0 -0
  121. data/vendor/local/bin/envsubst.exe +0 -0
  122. data/vendor/local/bin/gdbus-codegen +39 -0
  123. data/vendor/local/bin/gdbus.exe +0 -0
  124. data/vendor/local/bin/gettext.exe +0 -0
  125. data/vendor/local/bin/gettext.sh +121 -0
  126. data/vendor/local/bin/gio-querymodules.exe +0 -0
  127. data/vendor/local/bin/glib-compile-resources.exe +0 -0
  128. data/vendor/local/bin/glib-compile-schemas.exe +0 -0
  129. data/vendor/local/bin/glib-genmarshal.exe +0 -0
  130. data/vendor/local/bin/glib-gettextize +187 -0
  131. data/vendor/local/bin/glib-mkenums +565 -0
  132. data/vendor/local/bin/gnutls-cli-debug.exe +0 -0
  133. data/vendor/local/bin/gnutls-cli.exe +0 -0
  134. data/vendor/local/bin/gnutls-serv.exe +0 -0
  135. data/vendor/local/bin/gobject-query.exe +0 -0
  136. data/vendor/local/bin/gresource.exe +0 -0
  137. data/vendor/local/bin/gsettings.exe +0 -0
  138. data/vendor/local/bin/gspawn-win64-helper-console.exe +0 -0
  139. data/vendor/local/bin/gspawn-win64-helper.exe +0 -0
  140. data/vendor/local/bin/iconv.exe +0 -0
  141. data/vendor/local/bin/libasprintf-0.dll +0 -0
  142. data/vendor/local/bin/libcharset-1.dll +0 -0
  143. data/vendor/local/bin/libffi-6.dll +0 -0
  144. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  145. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  146. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  147. data/vendor/local/bin/libgmp-10.dll +0 -0
  148. data/vendor/local/bin/libgnutls-28.def +861 -0
  149. data/vendor/local/bin/libgnutls-28.dll +0 -0
  150. data/vendor/local/bin/libgnutls-openssl-27.dll +0 -0
  151. data/vendor/local/bin/libgnutls-openssl-28.def +228 -0
  152. data/vendor/local/bin/libgnutls-xssl-0.dll +0 -0
  153. data/vendor/local/bin/libgnutls-xssl-28.def +13 -0
  154. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  155. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  156. data/vendor/local/bin/libhogweed-2-5.dll +0 -0
  157. data/vendor/local/bin/libiconv-2.dll +0 -0
  158. data/vendor/local/bin/libintl-8.dll +0 -0
  159. data/vendor/local/bin/libnettle-4-7.dll +0 -0
  160. data/vendor/local/bin/nettle-hash.exe +0 -0
  161. data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
  162. data/vendor/local/bin/ngettext.exe +0 -0
  163. data/vendor/local/bin/ocsptool.exe +0 -0
  164. data/vendor/local/bin/pkcs1-conv.exe +0 -0
  165. data/vendor/local/bin/psktool.exe +0 -0
  166. data/vendor/local/bin/sexp-conv.exe +0 -0
  167. data/vendor/local/bin/srptool.exe +0 -0
  168. data/vendor/local/include/autosprintf.h +67 -0
  169. data/vendor/local/include/gio-win32-2.0/gio/gwin32inputstream.h +82 -0
  170. data/vendor/local/include/gio-win32-2.0/gio/gwin32outputstream.h +81 -0
  171. data/vendor/local/include/glib-2.0/gio/gaction.h +98 -0
  172. data/vendor/local/include/glib-2.0/gio/gactiongroup.h +161 -0
  173. data/vendor/local/include/glib-2.0/gio/gactiongroupexporter.h +45 -0
  174. data/vendor/local/include/glib-2.0/gio/gactionmap.h +95 -0
  175. data/vendor/local/include/glib-2.0/gio/gappinfo.h +313 -0
  176. data/vendor/local/include/glib-2.0/gio/gapplication.h +236 -0
  177. data/vendor/local/include/glib-2.0/gio/gapplicationcommandline.h +122 -0
  178. data/vendor/local/include/glib-2.0/gio/gasyncinitable.h +124 -0
  179. data/vendor/local/include/glib-2.0/gio/gasyncresult.h +85 -0
  180. data/vendor/local/include/glib-2.0/gio/gbufferedinputstream.h +133 -0
  181. data/vendor/local/include/glib-2.0/gio/gbufferedoutputstream.h +86 -0
  182. data/vendor/local/include/glib-2.0/gio/gbytesicon.h +52 -0
  183. data/vendor/local/include/glib-2.0/gio/gcancellable.h +118 -0
  184. data/vendor/local/include/glib-2.0/gio/gcharsetconverter.h +63 -0
  185. data/vendor/local/include/glib-2.0/gio/gcontenttype.h +71 -0
  186. data/vendor/local/include/glib-2.0/gio/gconverter.h +96 -0
  187. data/vendor/local/include/glib-2.0/gio/gconverterinputstream.h +80 -0
  188. data/vendor/local/include/glib-2.0/gio/gconverteroutputstream.h +80 -0
  189. data/vendor/local/include/glib-2.0/gio/gcredentials.h +85 -0
  190. data/vendor/local/include/glib-2.0/gio/gdatainputstream.h +180 -0
  191. data/vendor/local/include/glib-2.0/gio/gdataoutputstream.h +125 -0
  192. data/vendor/local/include/glib-2.0/gio/gdbusactiongroup.h +54 -0
  193. data/vendor/local/include/glib-2.0/gio/gdbusaddress.h +65 -0
  194. data/vendor/local/include/glib-2.0/gio/gdbusauthobserver.h +51 -0
  195. data/vendor/local/include/glib-2.0/gio/gdbusconnection.h +663 -0
  196. data/vendor/local/include/glib-2.0/gio/gdbuserror.h +109 -0
  197. data/vendor/local/include/glib-2.0/gio/gdbusinterface.h +81 -0
  198. data/vendor/local/include/glib-2.0/gio/gdbusinterfaceskeleton.h +127 -0
  199. data/vendor/local/include/glib-2.0/gio/gdbusintrospection.h +325 -0
  200. data/vendor/local/include/glib-2.0/gio/gdbusmenumodel.h +45 -0
  201. data/vendor/local/include/glib-2.0/gio/gdbusmessage.h +197 -0
  202. data/vendor/local/include/glib-2.0/gio/gdbusmethodinvocation.h +97 -0
  203. data/vendor/local/include/glib-2.0/gio/gdbusnameowning.h +115 -0
  204. data/vendor/local/include/glib-2.0/gio/gdbusnamewatching.h +102 -0
  205. data/vendor/local/include/glib-2.0/gio/gdbusobject.h +78 -0
  206. data/vendor/local/include/glib-2.0/gio/gdbusobjectmanager.h +94 -0
  207. data/vendor/local/include/glib-2.0/gio/gdbusobjectmanagerclient.h +146 -0
  208. data/vendor/local/include/glib-2.0/gio/gdbusobjectmanagerserver.h +93 -0
  209. data/vendor/local/include/glib-2.0/gio/gdbusobjectproxy.h +79 -0
  210. data/vendor/local/include/glib-2.0/gio/gdbusobjectskeleton.h +96 -0
  211. data/vendor/local/include/glib-2.0/gio/gdbusproxy.h +214 -0
  212. data/vendor/local/include/glib-2.0/gio/gdbusserver.h +60 -0
  213. data/vendor/local/include/glib-2.0/gio/gdbusutils.h +55 -0
  214. data/vendor/local/include/glib-2.0/gio/gdrive.h +259 -0
  215. data/vendor/local/include/glib-2.0/gio/gemblem.h +61 -0
  216. data/vendor/local/include/glib-2.0/gio/gemblemedicon.h +81 -0
  217. data/vendor/local/include/glib-2.0/gio/gfile.h +1250 -0
  218. data/vendor/local/include/glib-2.0/gio/gfileattribute.h +84 -0
  219. data/vendor/local/include/glib-2.0/gio/gfileenumerator.h +144 -0
  220. data/vendor/local/include/glib-2.0/gio/gfileicon.h +57 -0
  221. data/vendor/local/include/glib-2.0/gio/gfileinfo.h +1070 -0
  222. data/vendor/local/include/glib-2.0/gio/gfileinputstream.h +114 -0
  223. data/vendor/local/include/glib-2.0/gio/gfileiostream.h +121 -0
  224. data/vendor/local/include/glib-2.0/gio/gfilemonitor.h +98 -0
  225. data/vendor/local/include/glib-2.0/gio/gfilenamecompleter.h +79 -0
  226. data/vendor/local/include/glib-2.0/gio/gfileoutputstream.h +122 -0
  227. data/vendor/local/include/glib-2.0/gio/gfilterinputstream.h +78 -0
  228. data/vendor/local/include/glib-2.0/gio/gfilteroutputstream.h +78 -0
  229. data/vendor/local/include/glib-2.0/gio/gicon.h +101 -0
  230. data/vendor/local/include/glib-2.0/gio/ginetaddress.h +124 -0
  231. data/vendor/local/include/glib-2.0/gio/ginetaddressmask.h +85 -0
  232. data/vendor/local/include/glib-2.0/gio/ginetsocketaddress.h +78 -0
  233. data/vendor/local/include/glib-2.0/gio/ginitable.h +99 -0
  234. data/vendor/local/include/glib-2.0/gio/ginputstream.h +201 -0
  235. data/vendor/local/include/glib-2.0/gio/gio.h +167 -0
  236. data/vendor/local/include/glib-2.0/gio/gioenums.h +1816 -0
  237. data/vendor/local/include/glib-2.0/gio/gioenumtypes.h +167 -0
  238. data/vendor/local/include/glib-2.0/gio/gioerror.h +53 -0
  239. data/vendor/local/include/glib-2.0/gio/giomodule.h +169 -0
  240. data/vendor/local/include/glib-2.0/gio/gioscheduler.h +54 -0
  241. data/vendor/local/include/glib-2.0/gio/giostream.h +135 -0
  242. data/vendor/local/include/glib-2.0/gio/giotypes.h +535 -0
  243. data/vendor/local/include/glib-2.0/gio/gloadableicon.h +99 -0
  244. data/vendor/local/include/glib-2.0/gio/gmemoryinputstream.h +90 -0
  245. data/vendor/local/include/glib-2.0/gio/gmemoryoutputstream.h +107 -0
  246. data/vendor/local/include/glib-2.0/gio/gmenu.h +182 -0
  247. data/vendor/local/include/glib-2.0/gio/gmenuexporter.h +40 -0
  248. data/vendor/local/include/glib-2.0/gio/gmenumodel.h +305 -0
  249. data/vendor/local/include/glib-2.0/gio/gmount.h +276 -0
  250. data/vendor/local/include/glib-2.0/gio/gmountoperation.h +140 -0
  251. data/vendor/local/include/glib-2.0/gio/gnativevolumemonitor.h +61 -0
  252. data/vendor/local/include/glib-2.0/gio/gnetworkaddress.h +78 -0
  253. data/vendor/local/include/glib-2.0/gio/gnetworking.h +82 -0
  254. data/vendor/local/include/glib-2.0/gio/gnetworkmonitor.h +93 -0
  255. data/vendor/local/include/glib-2.0/gio/gnetworkservice.h +76 -0
  256. data/vendor/local/include/glib-2.0/gio/gnotification.h +97 -0
  257. data/vendor/local/include/glib-2.0/gio/goutputstream.h +254 -0
  258. data/vendor/local/include/glib-2.0/gio/gpermission.h +127 -0
  259. data/vendor/local/include/glib-2.0/gio/gpollableinputstream.h +105 -0
  260. data/vendor/local/include/glib-2.0/gio/gpollableoutputstream.h +105 -0
  261. data/vendor/local/include/glib-2.0/gio/gpollableutils.h +64 -0
  262. data/vendor/local/include/glib-2.0/gio/gpropertyaction.h +47 -0
  263. data/vendor/local/include/glib-2.0/gio/gproxy.h +128 -0
  264. data/vendor/local/include/glib-2.0/gio/gproxyaddress.h +86 -0
  265. data/vendor/local/include/glib-2.0/gio/gproxyaddressenumerator.h +74 -0
  266. data/vendor/local/include/glib-2.0/gio/gproxyresolver.h +95 -0
  267. data/vendor/local/include/glib-2.0/gio/gremoteactiongroup.h +75 -0
  268. data/vendor/local/include/glib-2.0/gio/gresolver.h +212 -0
  269. data/vendor/local/include/glib-2.0/gio/gresource.h +129 -0
  270. data/vendor/local/include/glib-2.0/gio/gseekable.h +103 -0
  271. data/vendor/local/include/glib-2.0/gio/gsettings.h +331 -0
  272. data/vendor/local/include/glib-2.0/gio/gsettingsbackend.h +158 -0
  273. data/vendor/local/include/glib-2.0/gio/gsettingsschema.h +104 -0
  274. data/vendor/local/include/glib-2.0/gio/gsimpleaction.h +59 -0
  275. data/vendor/local/include/glib-2.0/gio/gsimpleactiongroup.h +97 -0
  276. data/vendor/local/include/glib-2.0/gio/gsimpleasyncresult.h +162 -0
  277. data/vendor/local/include/glib-2.0/gio/gsimplepermission.h +45 -0
  278. data/vendor/local/include/glib-2.0/gio/gsimpleproxyresolver.h +89 -0
  279. data/vendor/local/include/glib-2.0/gio/gsocket.h +289 -0
  280. data/vendor/local/include/glib-2.0/gio/gsocketaddress.h +82 -0
  281. data/vendor/local/include/glib-2.0/gio/gsocketaddressenumerator.h +91 -0
  282. data/vendor/local/include/glib-2.0/gio/gsocketclient.h +197 -0
  283. data/vendor/local/include/glib-2.0/gio/gsocketconnectable.h +75 -0
  284. data/vendor/local/include/glib-2.0/gio/gsocketconnection.h +115 -0
  285. data/vendor/local/include/glib-2.0/gio/gsocketcontrolmessage.h +109 -0
  286. data/vendor/local/include/glib-2.0/gio/gsocketlistener.h +150 -0
  287. data/vendor/local/include/glib-2.0/gio/gsocketservice.h +91 -0
  288. data/vendor/local/include/glib-2.0/gio/gsrvtarget.h +59 -0
  289. data/vendor/local/include/glib-2.0/gio/gsubprocess.h +167 -0
  290. data/vendor/local/include/glib-2.0/gio/gsubprocesslauncher.h +116 -0
  291. data/vendor/local/include/glib-2.0/gio/gtask.h +158 -0
  292. data/vendor/local/include/glib-2.0/gio/gtcpconnection.h +69 -0
  293. data/vendor/local/include/glib-2.0/gio/gtcpwrapperconnection.h +69 -0
  294. data/vendor/local/include/glib-2.0/gio/gtestdbus.h +72 -0
  295. data/vendor/local/include/glib-2.0/gio/gthemedicon.h +68 -0
  296. data/vendor/local/include/glib-2.0/gio/gthreadedsocketservice.h +81 -0
  297. data/vendor/local/include/glib-2.0/gio/gtlsbackend.h +96 -0
  298. data/vendor/local/include/glib-2.0/gio/gtlscertificate.h +92 -0
  299. data/vendor/local/include/glib-2.0/gio/gtlsclientconnection.h +71 -0
  300. data/vendor/local/include/glib-2.0/gio/gtlsconnection.h +154 -0
  301. data/vendor/local/include/glib-2.0/gio/gtlsdatabase.h +247 -0
  302. data/vendor/local/include/glib-2.0/gio/gtlsfiledatabase.h +58 -0
  303. data/vendor/local/include/glib-2.0/gio/gtlsinteraction.h +148 -0
  304. data/vendor/local/include/glib-2.0/gio/gtlspassword.h +110 -0
  305. data/vendor/local/include/glib-2.0/gio/gtlsserverconnection.h +61 -0
  306. data/vendor/local/include/glib-2.0/gio/gvfs.h +132 -0
  307. data/vendor/local/include/glib-2.0/gio/gvolume.h +251 -0
  308. data/vendor/local/include/glib-2.0/gio/gvolumemonitor.h +154 -0
  309. data/vendor/local/include/glib-2.0/gio/gzlibcompressor.h +62 -0
  310. data/vendor/local/include/glib-2.0/gio/gzlibdecompressor.h +58 -0
  311. data/vendor/local/include/glib-2.0/glib-object.h +40 -0
  312. data/vendor/local/include/glib-2.0/glib-unix.h +119 -0
  313. data/vendor/local/include/glib-2.0/glib.h +112 -0
  314. data/vendor/local/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
  315. data/vendor/local/include/glib-2.0/glib/deprecated/gcache.h +75 -0
  316. data/vendor/local/include/glib-2.0/glib/deprecated/gcompletion.h +83 -0
  317. data/vendor/local/include/glib-2.0/glib/deprecated/gmain.h +139 -0
  318. data/vendor/local/include/glib-2.0/glib/deprecated/grel.h +105 -0
  319. data/vendor/local/include/glib-2.0/glib/deprecated/gthread.h +293 -0
  320. data/vendor/local/include/glib-2.0/glib/galloca.h +103 -0
  321. data/vendor/local/include/glib-2.0/glib/garray.h +238 -0
  322. data/vendor/local/include/glib-2.0/glib/gasyncqueue.h +109 -0
  323. data/vendor/local/include/glib-2.0/glib/gatomic.h +281 -0
  324. data/vendor/local/include/glib-2.0/glib/gbacktrace.h +64 -0
  325. data/vendor/local/include/glib-2.0/glib/gbase64.h +61 -0
  326. data/vendor/local/include/glib-2.0/glib/gbitlock.h +76 -0
  327. data/vendor/local/include/glib-2.0/glib/gbookmarkfile.h +255 -0
  328. data/vendor/local/include/glib-2.0/glib/gbytes.h +90 -0
  329. data/vendor/local/include/glib-2.0/glib/gcharset.h +43 -0
  330. data/vendor/local/include/glib-2.0/glib/gchecksum.h +101 -0
  331. data/vendor/local/include/glib-2.0/glib/gconvert.h +199 -0
  332. data/vendor/local/include/glib-2.0/glib/gdataset.h +150 -0
  333. data/vendor/local/include/glib-2.0/glib/gdate.h +309 -0
  334. data/vendor/local/include/glib-2.0/glib/gdatetime.h +264 -0
  335. data/vendor/local/include/glib-2.0/glib/gdir.h +64 -0
  336. data/vendor/local/include/glib-2.0/glib/genviron.h +78 -0
  337. data/vendor/local/include/glib-2.0/glib/gerror.h +118 -0
  338. data/vendor/local/include/glib-2.0/glib/gfileutils.h +207 -0
  339. data/vendor/local/include/glib-2.0/glib/ggettext.h +63 -0
  340. data/vendor/local/include/glib-2.0/glib/ghash.h +185 -0
  341. data/vendor/local/include/glib-2.0/glib/ghmac.h +78 -0
  342. data/vendor/local/include/glib-2.0/glib/ghook.h +202 -0
  343. data/vendor/local/include/glib-2.0/glib/ghostutils.h +43 -0
  344. data/vendor/local/include/glib-2.0/glib/gi18n-lib.h +36 -0
  345. data/vendor/local/include/glib-2.0/glib/gi18n.h +32 -0
  346. data/vendor/local/include/glib-2.0/glib/giochannel.h +413 -0
  347. data/vendor/local/include/glib-2.0/glib/gkeyfile.h +320 -0
  348. data/vendor/local/include/glib-2.0/glib/glist.h +152 -0
  349. data/vendor/local/include/glib-2.0/glib/gmacros.h +366 -0
  350. data/vendor/local/include/glib-2.0/glib/gmain.h +614 -0
  351. data/vendor/local/include/glib-2.0/glib/gmappedfile.h +58 -0
  352. data/vendor/local/include/glib-2.0/glib/gmarkup.h +262 -0
  353. data/vendor/local/include/glib-2.0/glib/gmem.h +298 -0
  354. data/vendor/local/include/glib-2.0/glib/gmessages.h +407 -0
  355. data/vendor/local/include/glib-2.0/glib/gnode.h +322 -0
  356. data/vendor/local/include/glib-2.0/glib/goption.h +377 -0
  357. data/vendor/local/include/glib-2.0/glib/gpattern.h +53 -0
  358. data/vendor/local/include/glib-2.0/glib/gpoll.h +127 -0
  359. data/vendor/local/include/glib-2.0/glib/gprimes.h +50 -0
  360. data/vendor/local/include/glib-2.0/glib/gprintf.h +57 -0
  361. data/vendor/local/include/glib-2.0/glib/gqsort.h +45 -0
  362. data/vendor/local/include/glib-2.0/glib/gquark.h +68 -0
  363. data/vendor/local/include/glib-2.0/glib/gqueue.h +190 -0
  364. data/vendor/local/include/glib-2.0/glib/grand.h +99 -0
  365. data/vendor/local/include/glib-2.0/glib/gregex.h +610 -0
  366. data/vendor/local/include/glib-2.0/glib/gscanner.h +303 -0
  367. data/vendor/local/include/glib-2.0/glib/gsequence.h +171 -0
  368. data/vendor/local/include/glib-2.0/glib/gshell.h +59 -0
  369. data/vendor/local/include/glib-2.0/glib/gslice.h +98 -0
  370. data/vendor/local/include/glib-2.0/glib/gslist.h +143 -0
  371. data/vendor/local/include/glib-2.0/glib/gspawn.h +307 -0
  372. data/vendor/local/include/glib-2.0/glib/gstdio.h +171 -0
  373. data/vendor/local/include/glib-2.0/glib/gstrfuncs.h +306 -0
  374. data/vendor/local/include/glib-2.0/glib/gstring.h +189 -0
  375. data/vendor/local/include/glib-2.0/glib/gstringchunk.h +57 -0
  376. data/vendor/local/include/glib-2.0/glib/gtestutils.h +421 -0
  377. data/vendor/local/include/glib-2.0/glib/gthread.h +271 -0
  378. data/vendor/local/include/glib-2.0/glib/gthreadpool.h +92 -0
  379. data/vendor/local/include/glib-2.0/glib/gtimer.h +74 -0
  380. data/vendor/local/include/glib-2.0/glib/gtimezone.h +89 -0
  381. data/vendor/local/include/glib-2.0/glib/gtrashstack.h +101 -0
  382. data/vendor/local/include/glib-2.0/glib/gtree.h +104 -0
  383. data/vendor/local/include/glib-2.0/glib/gtypes.h +482 -0
  384. data/vendor/local/include/glib-2.0/glib/gunicode.h +860 -0
  385. data/vendor/local/include/glib-2.0/glib/gurifuncs.h +83 -0
  386. data/vendor/local/include/glib-2.0/glib/gutils.h +374 -0
  387. data/vendor/local/include/glib-2.0/glib/gvariant.h +452 -0
  388. data/vendor/local/include/glib-2.0/glib/gvarianttype.h +380 -0
  389. data/vendor/local/include/glib-2.0/glib/gversion.h +55 -0
  390. data/vendor/local/include/glib-2.0/glib/gversionmacros.h +345 -0
  391. data/vendor/local/include/glib-2.0/glib/gwin32.h +134 -0
  392. data/vendor/local/include/glib-2.0/gmodule.h +115 -0
  393. data/vendor/local/include/glib-2.0/gobject/gbinding.h +149 -0
  394. data/vendor/local/include/glib-2.0/gobject/gboxed.h +122 -0
  395. data/vendor/local/include/glib-2.0/gobject/gclosure.h +297 -0
  396. data/vendor/local/include/glib-2.0/gobject/genums.h +273 -0
  397. data/vendor/local/include/glib-2.0/gobject/glib-types.h +358 -0
  398. data/vendor/local/include/glib-2.0/gobject/gmarshal.h +385 -0
  399. data/vendor/local/include/glib-2.0/gobject/gobject.h +672 -0
  400. data/vendor/local/include/glib-2.0/gobject/gobjectnotifyqueue.c +197 -0
  401. data/vendor/local/include/glib-2.0/gobject/gparam.h +447 -0
  402. data/vendor/local/include/glib-2.0/gobject/gparamspecs.h +1164 -0
  403. data/vendor/local/include/glib-2.0/gobject/gsignal.h +604 -0
  404. data/vendor/local/include/glib-2.0/gobject/gsourceclosure.h +38 -0
  405. data/vendor/local/include/glib-2.0/gobject/gtype.h +1990 -0
  406. data/vendor/local/include/glib-2.0/gobject/gtypemodule.h +278 -0
  407. data/vendor/local/include/glib-2.0/gobject/gtypeplugin.h +134 -0
  408. data/vendor/local/include/glib-2.0/gobject/gvalue.h +194 -0
  409. data/vendor/local/include/glib-2.0/gobject/gvaluearray.h +104 -0
  410. data/vendor/local/include/glib-2.0/gobject/gvaluecollector.h +254 -0
  411. data/vendor/local/include/glib-2.0/gobject/gvaluetypes.h +300 -0
  412. data/vendor/local/include/gmp.h +2301 -0
  413. data/vendor/local/include/gnutls/abstract.h +454 -0
  414. data/vendor/local/include/gnutls/compat.h +401 -0
  415. data/vendor/local/include/gnutls/crypto.h +117 -0
  416. data/vendor/local/include/gnutls/dtls.h +92 -0
  417. data/vendor/local/include/gnutls/gnutls.h +2299 -0
  418. data/vendor/local/include/gnutls/ocsp.h +257 -0
  419. data/vendor/local/include/gnutls/openpgp.h +366 -0
  420. data/vendor/local/include/gnutls/openssl.h +329 -0
  421. data/vendor/local/include/gnutls/pkcs11.h +356 -0
  422. data/vendor/local/include/gnutls/pkcs12.h +135 -0
  423. data/vendor/local/include/gnutls/tpm.h +79 -0
  424. data/vendor/local/include/gnutls/x509.h +1192 -0
  425. data/vendor/local/include/gnutls/xssl.h +125 -0
  426. data/vendor/local/include/iconv.h +242 -0
  427. data/vendor/local/include/libcharset.h +46 -0
  428. data/vendor/local/include/libintl.h +464 -0
  429. data/vendor/local/include/localcharset.h +42 -0
  430. data/vendor/local/include/nettle/aes.h +85 -0
  431. data/vendor/local/include/nettle/arcfour.h +66 -0
  432. data/vendor/local/include/nettle/arctwo.h +82 -0
  433. data/vendor/local/include/nettle/asn1.h +144 -0
  434. data/vendor/local/include/nettle/base16.h +106 -0
  435. data/vendor/local/include/nettle/base64.h +153 -0
  436. data/vendor/local/include/nettle/bignum.h +121 -0
  437. data/vendor/local/include/nettle/blowfish.h +76 -0
  438. data/vendor/local/include/nettle/buffer.h +98 -0
  439. data/vendor/local/include/nettle/camellia.h +82 -0
  440. data/vendor/local/include/nettle/cast128.h +77 -0
  441. data/vendor/local/include/nettle/cbc.h +76 -0
  442. data/vendor/local/include/nettle/ctr.h +62 -0
  443. data/vendor/local/include/nettle/des-compat.h +154 -0
  444. data/vendor/local/include/nettle/des.h +111 -0
  445. data/vendor/local/include/nettle/dsa.h +293 -0
  446. data/vendor/local/include/nettle/ecc-curve.h +45 -0
  447. data/vendor/local/include/nettle/ecc.h +261 -0
  448. data/vendor/local/include/nettle/ecdsa.h +94 -0
  449. data/vendor/local/include/nettle/gcm.h +186 -0
  450. data/vendor/local/include/nettle/gosthash94.h +88 -0
  451. data/vendor/local/include/nettle/hmac.h +202 -0
  452. data/vendor/local/include/nettle/knuth-lfib.h +75 -0
  453. data/vendor/local/include/nettle/macros.h +238 -0
  454. data/vendor/local/include/nettle/md2.h +69 -0
  455. data/vendor/local/include/nettle/md4.h +73 -0
  456. data/vendor/local/include/nettle/md5-compat.h +50 -0
  457. data/vendor/local/include/nettle/md5.h +76 -0
  458. data/vendor/local/include/nettle/memxor.h +22 -0
  459. data/vendor/local/include/nettle/nettle-meta.h +232 -0
  460. data/vendor/local/include/nettle/nettle-stdint.h +286 -0
  461. data/vendor/local/include/nettle/nettle-types.h +92 -0
  462. data/vendor/local/include/nettle/pbkdf2.h +77 -0
  463. data/vendor/local/include/nettle/pgp.h +240 -0
  464. data/vendor/local/include/nettle/pkcs1.h +106 -0
  465. data/vendor/local/include/nettle/realloc.h +41 -0
  466. data/vendor/local/include/nettle/ripemd160.h +78 -0
  467. data/vendor/local/include/nettle/rsa-compat.h +131 -0
  468. data/vendor/local/include/nettle/rsa.h +419 -0
  469. data/vendor/local/include/nettle/salsa20.h +93 -0
  470. data/vendor/local/include/nettle/serpent.h +81 -0
  471. data/vendor/local/include/nettle/sexp.h +212 -0
  472. data/vendor/local/include/nettle/sha.h +34 -0
  473. data/vendor/local/include/nettle/sha1.h +78 -0
  474. data/vendor/local/include/nettle/sha2.h +156 -0
  475. data/vendor/local/include/nettle/sha3.h +176 -0
  476. data/vendor/local/include/nettle/twofish.h +78 -0
  477. data/vendor/local/include/nettle/umac.h +241 -0
  478. data/vendor/local/include/nettle/yarrow.h +137 -0
  479. data/vendor/local/lib/charset.alias +4 -0
  480. data/vendor/local/lib/gio/modules/libgiognutls.a +0 -0
  481. data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
  482. data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
  483. data/vendor/local/lib/gio/modules/libgiognutls.la +41 -0
  484. data/vendor/local/lib/glib-2.0/include/glibconfig.h +199 -0
  485. data/vendor/local/lib/gthread-2.0.def +3 -0
  486. data/vendor/local/lib/libasprintf.a +0 -0
  487. data/vendor/local/lib/libasprintf.dll.a +0 -0
  488. data/vendor/local/lib/libasprintf.la +41 -0
  489. data/vendor/local/lib/libcharset.a +0 -0
  490. data/vendor/local/lib/libcharset.dll.a +0 -0
  491. data/vendor/local/lib/libcharset.la +41 -0
  492. data/vendor/local/lib/libffi-3.2.1/include/ffi.h +487 -0
  493. data/vendor/local/lib/libffi-3.2.1/include/ffitarget.h +150 -0
  494. data/vendor/local/lib/libffi.a +0 -0
  495. data/vendor/local/lib/libffi.dll.a +0 -0
  496. data/vendor/local/lib/libffi.la +41 -0
  497. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  498. data/vendor/local/lib/libgio-2.0.la +41 -0
  499. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  500. data/vendor/local/lib/libglib-2.0.la +41 -0
  501. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  502. data/vendor/local/lib/libgmodule-2.0.la +41 -0
  503. data/vendor/local/lib/libgmp.dll.a +0 -0
  504. data/vendor/local/lib/libgmp.la +41 -0
  505. data/vendor/local/lib/libgnutls-openssl.a +0 -0
  506. data/vendor/local/lib/libgnutls-openssl.dll.a +0 -0
  507. data/vendor/local/lib/libgnutls-openssl.la +41 -0
  508. data/vendor/local/lib/libgnutls-xssl.a +0 -0
  509. data/vendor/local/lib/libgnutls-xssl.dll.a +0 -0
  510. data/vendor/local/lib/libgnutls-xssl.la +41 -0
  511. data/vendor/local/lib/libgnutls.a +0 -0
  512. data/vendor/local/lib/libgnutls.dll.a +0 -0
  513. data/vendor/local/lib/libgnutls.la +41 -0
  514. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  515. data/vendor/local/lib/libgobject-2.0.la +41 -0
  516. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  517. data/vendor/local/lib/libgthread-2.0.la +41 -0
  518. data/vendor/local/lib/libhogweed.a +0 -0
  519. data/vendor/local/lib/libhogweed.dll.a +0 -0
  520. data/vendor/local/lib/libiconv.dll.a +0 -0
  521. data/vendor/local/lib/libiconv.la +41 -0
  522. data/vendor/local/lib/libintl.a +0 -0
  523. data/vendor/local/lib/libintl.dll.a +0 -0
  524. data/vendor/local/lib/libintl.la +41 -0
  525. data/vendor/local/lib/libnettle.a +0 -0
  526. data/vendor/local/lib/libnettle.dll.a +0 -0
  527. data/vendor/local/lib/pkgconfig/gio-2.0.pc +18 -0
  528. data/vendor/local/lib/pkgconfig/gio-windows-2.0.pc +11 -0
  529. data/vendor/local/lib/pkgconfig/glib-2.0.pc +16 -0
  530. data/vendor/local/lib/pkgconfig/gmodule-2.0.pc +14 -0
  531. data/vendor/local/lib/pkgconfig/gmodule-export-2.0.pc +14 -0
  532. data/vendor/local/lib/pkgconfig/gmodule-no-export-2.0.pc +14 -0
  533. data/vendor/local/lib/pkgconfig/gnutls.pc +24 -0
  534. data/vendor/local/lib/pkgconfig/gobject-2.0.pc +12 -0
  535. data/vendor/local/lib/pkgconfig/gthread-2.0.pc +11 -0
  536. data/vendor/local/lib/pkgconfig/hogweed.pc +18 -0
  537. data/vendor/local/lib/pkgconfig/libffi.pc +11 -0
  538. data/vendor/local/lib/pkgconfig/nettle.pc +11 -0
  539. data/vendor/local/lib/pkgconfig/patched +0 -0
  540. data/vendor/local/share/aclocal/glib-2.0.m4 +211 -0
  541. data/vendor/local/share/aclocal/glib-gettext.m4 +435 -0
  542. data/vendor/local/share/aclocal/gsettings.m4 +83 -0
  543. data/vendor/local/share/bash-completion/completions/gapplication +55 -0
  544. data/vendor/local/share/bash-completion/completions/gdbus +33 -0
  545. data/vendor/local/share/bash-completion/completions/gresource +58 -0
  546. data/vendor/local/share/bash-completion/completions/gsettings +84 -0
  547. data/vendor/local/share/doc/gettext/bind_textdomain_codeset.3.html +158 -0
  548. data/vendor/local/share/doc/gettext/bindtextdomain.3.html +154 -0
  549. data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext.html +8 -0
  550. data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceManager.html +305 -0
  551. data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceSet.html +356 -0
  552. data/vendor/local/share/doc/gettext/csharpdoc/begin.html +11 -0
  553. data/vendor/local/share/doc/gettext/csharpdoc/index.html +10 -0
  554. data/vendor/local/share/doc/gettext/csharpdoc/namespaces.html +6 -0
  555. data/vendor/local/share/doc/gettext/envsubst.1.html +139 -0
  556. data/vendor/local/share/doc/gettext/gettext.1.html +188 -0
  557. data/vendor/local/share/doc/gettext/gettext.3.html +182 -0
  558. data/vendor/local/share/doc/gettext/javadoc2/allclasses-frame.html +25 -0
  559. data/vendor/local/share/doc/gettext/javadoc2/deprecated-list.html +87 -0
  560. data/vendor/local/share/doc/gettext/javadoc2/gnu/gettext/GettextResource.html +321 -0
  561. data/vendor/local/share/doc/gettext/javadoc2/gnu/gettext/package-frame.html +26 -0
  562. data/vendor/local/share/doc/gettext/javadoc2/gnu/gettext/package-summary.html +103 -0
  563. data/vendor/local/share/doc/gettext/javadoc2/gnu/gettext/package-tree.html +99 -0
  564. data/vendor/local/share/doc/gettext/javadoc2/help-doc.html +136 -0
  565. data/vendor/local/share/doc/gettext/javadoc2/index-all.html +111 -0
  566. data/vendor/local/share/doc/gettext/javadoc2/index.html +22 -0
  567. data/vendor/local/share/doc/gettext/javadoc2/overview-tree.html +96 -0
  568. data/vendor/local/share/doc/gettext/javadoc2/package-list +1 -0
  569. data/vendor/local/share/doc/gettext/javadoc2/packages.html +26 -0
  570. data/vendor/local/share/doc/gettext/javadoc2/serialized-form.html +87 -0
  571. data/vendor/local/share/doc/gettext/javadoc2/stylesheet.css +29 -0
  572. data/vendor/local/share/doc/gettext/ngettext.1.html +194 -0
  573. data/vendor/local/share/doc/gettext/ngettext.3.html +138 -0
  574. data/vendor/local/share/doc/gettext/textdomain.3.html +140 -0
  575. data/vendor/local/share/doc/libasprintf/autosprintf_all.html +174 -0
  576. data/vendor/local/share/doc/libiconv/iconv.1.html +206 -0
  577. data/vendor/local/share/doc/libiconv/iconv.3.html +207 -0
  578. data/vendor/local/share/doc/libiconv/iconv_close.3.html +90 -0
  579. data/vendor/local/share/doc/libiconv/iconv_open.3.html +318 -0
  580. data/vendor/local/share/doc/libiconv/iconv_open_into.3.html +120 -0
  581. data/vendor/local/share/doc/libiconv/iconvctl.3.html +189 -0
  582. data/vendor/local/share/gdb/auto-load/libglib-2.0.so.0.4200.1-gdb.py +10 -0
  583. data/vendor/local/share/gdb/auto-load/libgobject-2.0.so.0.4200.1-gdb.py +10 -0
  584. data/vendor/local/share/gettext/ABOUT-NLS +1282 -0
  585. data/vendor/local/share/glib-2.0/codegen/__init__.py +27 -0
  586. data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
  587. data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
  588. data/vendor/local/share/glib-2.0/codegen/codegen.py +3412 -0
  589. data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
  590. data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
  591. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.py +329 -0
  592. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
  593. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
  594. data/vendor/local/share/glib-2.0/codegen/codegen_main.py +201 -0
  595. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
  596. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
  597. data/vendor/local/share/glib-2.0/codegen/config.py +25 -0
  598. data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
  599. data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
  600. data/vendor/local/share/glib-2.0/codegen/dbustypes.py +424 -0
  601. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
  602. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
  603. data/vendor/local/share/glib-2.0/codegen/parser.py +288 -0
  604. data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
  605. data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
  606. data/vendor/local/share/glib-2.0/codegen/utils.py +102 -0
  607. data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
  608. data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
  609. data/vendor/local/share/glib-2.0/gdb/glib.py +257 -0
  610. data/vendor/local/share/glib-2.0/gdb/gobject.py +295 -0
  611. data/vendor/local/share/glib-2.0/gettext/po/Makefile.in.in +268 -0
  612. data/vendor/local/share/glib-2.0/schemas/gschema.dtd +73 -0
  613. data/vendor/local/share/glib-2.0/schemas/gschemas.compiled +0 -0
  614. data/vendor/local/share/gtk-doc/html/gio/ExampleAnimal.html +1537 -0
  615. data/vendor/local/share/gtk-doc/html/gio/ExampleCat.html +679 -0
  616. data/vendor/local/share/gtk-doc/html/gio/ExampleObject.html +572 -0
  617. data/vendor/local/share/gtk-doc/html/gio/ExampleObjectManagerClient.html +561 -0
  618. data/vendor/local/share/gtk-doc/html/gio/GAction.html +832 -0
  619. data/vendor/local/share/gtk-doc/html/gio/GActionGroup.html +1242 -0
  620. data/vendor/local/share/gtk-doc/html/gio/GActionMap.html +507 -0
  621. data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +2160 -0
  622. data/vendor/local/share/gtk-doc/html/gio/GAppInfoMonitor.html +151 -0
  623. data/vendor/local/share/gtk-doc/html/gio/GApplication.html +2448 -0
  624. data/vendor/local/share/gtk-doc/html/gio/GApplicationCommandLine.html +981 -0
  625. data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +769 -0
  626. data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +511 -0
  627. data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +705 -0
  628. data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +393 -0
  629. data/vendor/local/share/gtk-doc/html/gio/GCancellable.html +861 -0
  630. data/vendor/local/share/gtk-doc/html/gio/GCharsetConverter.html +317 -0
  631. data/vendor/local/share/gtk-doc/html/gio/GConverter.html +467 -0
  632. data/vendor/local/share/gtk-doc/html/gio/GCredentials.html +564 -0
  633. data/vendor/local/share/gtk-doc/html/gio/GDBusActionGroup.html +161 -0
  634. data/vendor/local/share/gtk-doc/html/gio/GDBusAuthObserver.html +390 -0
  635. data/vendor/local/share/gtk-doc/html/gio/GDBusConnection.html +4687 -0
  636. data/vendor/local/share/gtk-doc/html/gio/GDBusInterface.html +329 -0
  637. data/vendor/local/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html +882 -0
  638. data/vendor/local/share/gtk-doc/html/gio/GDBusMenuModel.html +152 -0
  639. data/vendor/local/share/gtk-doc/html/gio/GDBusMessage.html +2484 -0
  640. data/vendor/local/share/gtk-doc/html/gio/GDBusMethodInvocation.html +903 -0
  641. data/vendor/local/share/gtk-doc/html/gio/GDBusObject.html +404 -0
  642. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManager.html +592 -0
  643. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManagerClient.html +1281 -0
  644. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManagerServer.html +505 -0
  645. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectProxy.html +260 -0
  646. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectSkeleton.html +491 -0
  647. data/vendor/local/share/gtk-doc/html/gio/GDBusProxy.html +2170 -0
  648. data/vendor/local/share/gtk-doc/html/gio/GDBusServer.html +635 -0
  649. data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +1595 -0
  650. data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +699 -0
  651. data/vendor/local/share/gtk-doc/html/gio/GDrive.html +1873 -0
  652. data/vendor/local/share/gtk-doc/html/gio/GEmblem.html +354 -0
  653. data/vendor/local/share/gtk-doc/html/gio/GEmblemedIcon.html +325 -0
  654. data/vendor/local/share/gtk-doc/html/gio/GFile.html +9688 -0
  655. data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +145 -0
  656. data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +713 -0
  657. data/vendor/local/share/gtk-doc/html/gio/GFileIOStream.html +352 -0
  658. data/vendor/local/share/gtk-doc/html/gio/GFileIcon.html +200 -0
  659. data/vendor/local/share/gtk-doc/html/gio/GFileInfo.html +4261 -0
  660. data/vendor/local/share/gtk-doc/html/gio/GFileInputStream.html +293 -0
  661. data/vendor/local/share/gtk-doc/html/gio/GFileMonitor.html +475 -0
  662. data/vendor/local/share/gtk-doc/html/gio/GFileOutputStream.html +345 -0
  663. data/vendor/local/share/gtk-doc/html/gio/GFilenameCompleter.html +287 -0
  664. data/vendor/local/share/gtk-doc/html/gio/GFilterInputStream.html +249 -0
  665. data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +251 -0
  666. data/vendor/local/share/gtk-doc/html/gio/GIOModule.html +592 -0
  667. data/vendor/local/share/gtk-doc/html/gio/GIOStream.html +772 -0
  668. data/vendor/local/share/gtk-doc/html/gio/GIcon.html +479 -0
  669. data/vendor/local/share/gtk-doc/html/gio/GInetAddress.html +1044 -0
  670. data/vendor/local/share/gtk-doc/html/gio/GInetSocketAddress.html +419 -0
  671. data/vendor/local/share/gtk-doc/html/gio/GInitable.html +455 -0
  672. data/vendor/local/share/gtk-doc/html/gio/GInputStream.html +1164 -0
  673. data/vendor/local/share/gtk-doc/html/gio/GLoadableIcon.html +354 -0
  674. data/vendor/local/share/gtk-doc/html/gio/GMemoryInputStream.html +308 -0
  675. data/vendor/local/share/gtk-doc/html/gio/GMemoryOutputStream.html +577 -0
  676. data/vendor/local/share/gtk-doc/html/gio/GMenu.html +1877 -0
  677. data/vendor/local/share/gtk-doc/html/gio/GMenuModel.html +1205 -0
  678. data/vendor/local/share/gtk-doc/html/gio/GMount.html +1929 -0
  679. data/vendor/local/share/gtk-doc/html/gio/GMountOperation.html +1197 -0
  680. data/vendor/local/share/gtk-doc/html/gio/GNetworkAddress.html +451 -0
  681. data/vendor/local/share/gtk-doc/html/gio/GNetworkMonitor.html +499 -0
  682. data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +421 -0
  683. data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +1561 -0
  684. data/vendor/local/share/gtk-doc/html/gio/GPermission.html +672 -0
  685. data/vendor/local/share/gtk-doc/html/gio/GPollableInputStream.html +411 -0
  686. data/vendor/local/share/gtk-doc/html/gio/GPollableOutputStream.html +411 -0
  687. data/vendor/local/share/gtk-doc/html/gio/GProxy.html +455 -0
  688. data/vendor/local/share/gtk-doc/html/gio/GProxyAddress.html +580 -0
  689. data/vendor/local/share/gtk-doc/html/gio/GProxyResolver.html +395 -0
  690. data/vendor/local/share/gtk-doc/html/gio/GRemoteActionGroup.html +290 -0
  691. data/vendor/local/share/gtk-doc/html/gio/GResolver.html +1171 -0
  692. data/vendor/local/share/gtk-doc/html/gio/GSeekable.html +441 -0
  693. data/vendor/local/share/gtk-doc/html/gio/GSettings.html +3485 -0
  694. data/vendor/local/share/gtk-doc/html/gio/GSettingsBackend.html +755 -0
  695. data/vendor/local/share/gtk-doc/html/gio/GSimpleAction.html +540 -0
  696. data/vendor/local/share/gtk-doc/html/gio/GSimpleActionGroup.html +319 -0
  697. data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +1634 -0
  698. data/vendor/local/share/gtk-doc/html/gio/GSimplePermission.html +129 -0
  699. data/vendor/local/share/gtk-doc/html/gio/GSimpleProxyResolver.html +433 -0
  700. data/vendor/local/share/gtk-doc/html/gio/GSocket.html +3696 -0
  701. data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +374 -0
  702. data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +2079 -0
  703. data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +623 -0
  704. data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +631 -0
  705. data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +330 -0
  706. data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +868 -0
  707. data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +329 -0
  708. data/vendor/local/share/gtk-doc/html/gio/GSrvTarget.html +424 -0
  709. data/vendor/local/share/gtk-doc/html/gio/GSubprocess.html +1601 -0
  710. data/vendor/local/share/gtk-doc/html/gio/GTask.html +2562 -0
  711. data/vendor/local/share/gtk-doc/html/gio/GTcpConnection.html +209 -0
  712. data/vendor/local/share/gtk-doc/html/gio/GTcpWrapperConnection.html +211 -0
  713. data/vendor/local/share/gtk-doc/html/gio/GTestDBus.html +510 -0
  714. data/vendor/local/share/gtk-doc/html/gio/GThemedIcon.html +464 -0
  715. data/vendor/local/share/gtk-doc/html/gio/GThreadedSocketService.html +241 -0
  716. data/vendor/local/share/gtk-doc/html/gio/GTlsBackend.html +432 -0
  717. data/vendor/local/share/gtk-doc/html/gio/GTlsCertificate.html +590 -0
  718. data/vendor/local/share/gtk-doc/html/gio/GTlsClientConnection.html +550 -0
  719. data/vendor/local/share/gtk-doc/html/gio/GTlsConnection.html +1294 -0
  720. data/vendor/local/share/gtk-doc/html/gio/GTlsDatabase.html +1091 -0
  721. data/vendor/local/share/gtk-doc/html/gio/GTlsFileDatabase.html +208 -0
  722. data/vendor/local/share/gtk-doc/html/gio/GTlsInteraction.html +735 -0
  723. data/vendor/local/share/gtk-doc/html/gio/GTlsPassword.html +662 -0
  724. data/vendor/local/share/gtk-doc/html/gio/GTlsServerConnection.html +193 -0
  725. data/vendor/local/share/gtk-doc/html/gio/GUnixConnection.html +553 -0
  726. data/vendor/local/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +268 -0
  727. data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +455 -0
  728. data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +349 -0
  729. data/vendor/local/share/gtk-doc/html/gio/GUnixInputStream.html +314 -0
  730. data/vendor/local/share/gtk-doc/html/gio/GUnixOutputStream.html +314 -0
  731. data/vendor/local/share/gtk-doc/html/gio/GUnixSocketAddress.html +612 -0
  732. data/vendor/local/share/gtk-doc/html/gio/GVfs.html +358 -0
  733. data/vendor/local/share/gtk-doc/html/gio/GVolume.html +1391 -0
  734. data/vendor/local/share/gtk-doc/html/gio/GVolumeMonitor.html +926 -0
  735. data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +330 -0
  736. data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +220 -0
  737. data/vendor/local/share/gtk-doc/html/gio/annotation-glossary.html +76 -0
  738. data/vendor/local/share/gtk-doc/html/gio/api-index-2-18.html +148 -0
  739. data/vendor/local/share/gtk-doc/html/gio/api-index-2-20.html +157 -0
  740. data/vendor/local/share/gtk-doc/html/gio/api-index-2-22.html +1083 -0
  741. data/vendor/local/share/gtk-doc/html/gio/api-index-2-24.html +210 -0
  742. data/vendor/local/share/gtk-doc/html/gio/api-index-2-26.html +1640 -0
  743. data/vendor/local/share/gtk-doc/html/gio/api-index-2-28.html +715 -0
  744. data/vendor/local/share/gtk-doc/html/gio/api-index-2-30.html +686 -0
  745. data/vendor/local/share/gtk-doc/html/gio/api-index-2-32.html +725 -0
  746. data/vendor/local/share/gtk-doc/html/gio/api-index-2-34.html +268 -0
  747. data/vendor/local/share/gtk-doc/html/gio/api-index-2-36.html +259 -0
  748. data/vendor/local/share/gtk-doc/html/gio/api-index-2-38.html +161 -0
  749. data/vendor/local/share/gtk-doc/html/gio/api-index-2-40.html +369 -0
  750. data/vendor/local/share/gtk-doc/html/gio/api-index-2-42.html +50 -0
  751. data/vendor/local/share/gtk-doc/html/gio/api-index-deprecated.html +198 -0
  752. data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +9512 -0
  753. data/vendor/local/share/gtk-doc/html/gio/application.html +80 -0
  754. data/vendor/local/share/gtk-doc/html/gio/async.html +48 -0
  755. data/vendor/local/share/gtk-doc/html/gio/ch01.html +232 -0
  756. data/vendor/local/share/gtk-doc/html/gio/ch02.html +114 -0
  757. data/vendor/local/share/gtk-doc/html/gio/ch03.html +45 -0
  758. data/vendor/local/share/gtk-doc/html/gio/ch30.html +75 -0
  759. data/vendor/local/share/gtk-doc/html/gio/ch31.html +217 -0
  760. data/vendor/local/share/gtk-doc/html/gio/ch31s02.html +41 -0
  761. data/vendor/local/share/gtk-doc/html/gio/ch31s03.html +39 -0
  762. data/vendor/local/share/gtk-doc/html/gio/ch32.html +56 -0
  763. data/vendor/local/share/gtk-doc/html/gio/ch32s02.html +59 -0
  764. data/vendor/local/share/gtk-doc/html/gio/ch32s03.html +159 -0
  765. data/vendor/local/share/gtk-doc/html/gio/ch32s04.html +46 -0
  766. data/vendor/local/share/gtk-doc/html/gio/ch32s05.html +48 -0
  767. data/vendor/local/share/gtk-doc/html/gio/ch32s06.html +278 -0
  768. data/vendor/local/share/gtk-doc/html/gio/ch32s07.html +160 -0
  769. data/vendor/local/share/gtk-doc/html/gio/ch33.html +116 -0
  770. data/vendor/local/share/gtk-doc/html/gio/ch33s02.html +142 -0
  771. data/vendor/local/share/gtk-doc/html/gio/ch33s03.html +202 -0
  772. data/vendor/local/share/gtk-doc/html/gio/ch33s04.html +97 -0
  773. data/vendor/local/share/gtk-doc/html/gio/ch33s05.html +931 -0
  774. data/vendor/local/share/gtk-doc/html/gio/conversion.html +44 -0
  775. data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +131 -0
  776. data/vendor/local/share/gtk-doc/html/gio/extending.html +41 -0
  777. data/vendor/local/share/gtk-doc/html/gio/failable_initialization.html +38 -0
  778. data/vendor/local/share/gtk-doc/html/gio/file_mon.html +33 -0
  779. data/vendor/local/share/gtk-doc/html/gio/file_ops.html +50 -0
  780. data/vendor/local/share/gtk-doc/html/gio/gapplication-tool.html +288 -0
  781. data/vendor/local/share/gtk-doc/html/gio/gdbus-codegen.html +1098 -0
  782. data/vendor/local/share/gtk-doc/html/gio/gdbus-convenience.html +65 -0
  783. data/vendor/local/share/gtk-doc/html/gio/gdbus-lowlevel.html +59 -0
  784. data/vendor/local/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Animal.html +161 -0
  785. data/vendor/local/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Cat.html +51 -0
  786. data/vendor/local/share/gtk-doc/html/gio/gdbus.html +300 -0
  787. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +390 -0
  788. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +1572 -0
  789. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html +398 -0
  790. data/vendor/local/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +1131 -0
  791. data/vendor/local/share/gtk-doc/html/gio/gio-Extension-Points.html +613 -0
  792. data/vendor/local/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html +192 -0
  793. data/vendor/local/share/gtk-doc/html/gio/gio-GBytesIcon.html +162 -0
  794. data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +595 -0
  795. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +214 -0
  796. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +214 -0
  797. data/vendor/local/share/gtk-doc/html/gio/gio-GDBusError.html +1106 -0
  798. data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +650 -0
  799. data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +539 -0
  800. data/vendor/local/share/gtk-doc/html/gio/gio-GIOScheduler.html +365 -0
  801. data/vendor/local/share/gtk-doc/html/gio/gio-GInetAddressMask.html +443 -0
  802. data/vendor/local/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html +183 -0
  803. data/vendor/local/share/gtk-doc/html/gio/gio-GNotification.html +670 -0
  804. data/vendor/local/share/gtk-doc/html/gio/gio-GPropertyAction.html +177 -0
  805. data/vendor/local/share/gtk-doc/html/gio/gio-GResource.html +1141 -0
  806. data/vendor/local/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html +1186 -0
  807. data/vendor/local/share/gtk-doc/html/gio/gio-GSubprocessLauncher.html +931 -0
  808. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32InputStream.html +258 -0
  809. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32OutputStream.html +259 -0
  810. data/vendor/local/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html +658 -0
  811. data/vendor/local/share/gtk-doc/html/gio/gio-TLS-Overview.html +321 -0
  812. data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +1398 -0
  813. data/vendor/local/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html +575 -0
  814. data/vendor/local/share/gtk-doc/html/gio/gio-gnetworking.h.html +94 -0
  815. data/vendor/local/share/gtk-doc/html/gio/gio-gpollableutils.html +475 -0
  816. data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +188 -0
  817. data/vendor/local/share/gtk-doc/html/gio/gio-querymodules.html +53 -0
  818. data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +2715 -0
  819. data/vendor/local/share/gtk-doc/html/gio/glib-compile-resources.html +209 -0
  820. data/vendor/local/share/gtk-doc/html/gio/glib-compile-schemas.html +111 -0
  821. data/vendor/local/share/gtk-doc/html/gio/gresource-tool.html +111 -0
  822. data/vendor/local/share/gtk-doc/html/gio/gsettings-tool.html +178 -0
  823. data/vendor/local/share/gtk-doc/html/gio/gvfs-overview.png +0 -0
  824. data/vendor/local/share/gtk-doc/html/gio/highlevel-socket.html +60 -0
  825. data/vendor/local/share/gtk-doc/html/gio/home.png +0 -0
  826. data/vendor/local/share/gtk-doc/html/gio/icons.html +53 -0
  827. data/vendor/local/share/gtk-doc/html/gio/index.html +646 -0
  828. data/vendor/local/share/gtk-doc/html/gio/index.sgml +4046 -0
  829. data/vendor/local/share/gtk-doc/html/gio/left-insensitive.png +0 -0
  830. data/vendor/local/share/gtk-doc/html/gio/left.png +0 -0
  831. data/vendor/local/share/gtk-doc/html/gio/menu-example.png +0 -0
  832. data/vendor/local/share/gtk-doc/html/gio/menu-model.png +0 -0
  833. data/vendor/local/share/gtk-doc/html/gio/migrating.html +82 -0
  834. data/vendor/local/share/gtk-doc/html/gio/networking.html +75 -0
  835. data/vendor/local/share/gtk-doc/html/gio/permissions.html +39 -0
  836. data/vendor/local/share/gtk-doc/html/gio/pt01.html +40 -0
  837. data/vendor/local/share/gtk-doc/html/gio/pt02.html +572 -0
  838. data/vendor/local/share/gtk-doc/html/gio/resolver.html +53 -0
  839. data/vendor/local/share/gtk-doc/html/gio/resources.html +33 -0
  840. data/vendor/local/share/gtk-doc/html/gio/right-insensitive.png +0 -0
  841. data/vendor/local/share/gtk-doc/html/gio/right.png +0 -0
  842. data/vendor/local/share/gtk-doc/html/gio/running-gio-apps.html +189 -0
  843. data/vendor/local/share/gtk-doc/html/gio/settings.html +42 -0
  844. data/vendor/local/share/gtk-doc/html/gio/streaming.html +107 -0
  845. data/vendor/local/share/gtk-doc/html/gio/style.css +476 -0
  846. data/vendor/local/share/gtk-doc/html/gio/subprocesses.html +38 -0
  847. data/vendor/local/share/gtk-doc/html/gio/testing.html +33 -0
  848. data/vendor/local/share/gtk-doc/html/gio/tls.html +62 -0
  849. data/vendor/local/share/gtk-doc/html/gio/tools.html +56 -0
  850. data/vendor/local/share/gtk-doc/html/gio/types.html +44 -0
  851. data/vendor/local/share/gtk-doc/html/gio/up-insensitive.png +0 -0
  852. data/vendor/local/share/gtk-doc/html/gio/up.png +0 -0
  853. data/vendor/local/share/gtk-doc/html/gio/utils.html +33 -0
  854. data/vendor/local/share/gtk-doc/html/gio/volume_mon.html +47 -0
  855. data/vendor/local/share/gtk-doc/html/glib/Sorted_binary_tree_breadth-first_traversal.svg +134 -0
  856. data/vendor/local/share/gtk-doc/html/glib/Sorted_binary_tree_inorder.svg +753 -0
  857. data/vendor/local/share/gtk-doc/html/glib/Sorted_binary_tree_postorder.svg +750 -0
  858. data/vendor/local/share/gtk-doc/html/glib/Sorted_binary_tree_preorder.svg +750 -0
  859. data/vendor/local/share/gtk-doc/html/glib/annotation-glossary.html +81 -0
  860. data/vendor/local/share/gtk-doc/html/glib/api-index-2-10.html +167 -0
  861. data/vendor/local/share/gtk-doc/html/glib/api-index-2-12.html +307 -0
  862. data/vendor/local/share/gtk-doc/html/glib/api-index-2-14.html +562 -0
  863. data/vendor/local/share/gtk-doc/html/glib/api-index-2-16.html +357 -0
  864. data/vendor/local/share/gtk-doc/html/glib/api-index-2-18.html +108 -0
  865. data/vendor/local/share/gtk-doc/html/glib/api-index-2-2.html +119 -0
  866. data/vendor/local/share/gtk-doc/html/glib/api-index-2-20.html +86 -0
  867. data/vendor/local/share/gtk-doc/html/glib/api-index-2-22.html +189 -0
  868. data/vendor/local/share/gtk-doc/html/glib/api-index-2-24.html +423 -0
  869. data/vendor/local/share/gtk-doc/html/glib/api-index-2-26.html +389 -0
  870. data/vendor/local/share/gtk-doc/html/glib/api-index-2-28.html +122 -0
  871. data/vendor/local/share/gtk-doc/html/glib/api-index-2-30.html +252 -0
  872. data/vendor/local/share/gtk-doc/html/glib/api-index-2-32.html +343 -0
  873. data/vendor/local/share/gtk-doc/html/glib/api-index-2-34.html +116 -0
  874. data/vendor/local/share/gtk-doc/html/glib/api-index-2-36.html +116 -0
  875. data/vendor/local/share/gtk-doc/html/glib/api-index-2-38.html +111 -0
  876. data/vendor/local/share/gtk-doc/html/glib/api-index-2-4.html +399 -0
  877. data/vendor/local/share/gtk-doc/html/glib/api-index-2-40.html +158 -0
  878. data/vendor/local/share/gtk-doc/html/glib/api-index-2-42.html +35 -0
  879. data/vendor/local/share/gtk-doc/html/glib/api-index-2-6.html +416 -0
  880. data/vendor/local/share/gtk-doc/html/glib/api-index-2-8.html +157 -0
  881. data/vendor/local/share/gtk-doc/html/glib/api-index-deprecated.html +596 -0
  882. data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +9013 -0
  883. data/vendor/local/share/gtk-doc/html/glib/deprecated.html +47 -0
  884. data/vendor/local/share/gtk-doc/html/glib/file-name-encodings.png +0 -0
  885. data/vendor/local/share/gtk-doc/html/glib/glib-Arrays.html +1130 -0
  886. data/vendor/local/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +1242 -0
  887. data/vendor/local/share/gtk-doc/html/glib/glib-Atomic-Operations.html +944 -0
  888. data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +614 -0
  889. data/vendor/local/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +958 -0
  890. data/vendor/local/share/gtk-doc/html/glib/glib-Base64-Encoding.html +440 -0
  891. data/vendor/local/share/gtk-doc/html/glib/glib-Basic-Types.html +1155 -0
  892. data/vendor/local/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +2442 -0
  893. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Arrays.html +1513 -0
  894. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +2152 -0
  895. data/vendor/local/share/gtk-doc/html/glib/glib-Caches.html +540 -0
  896. data/vendor/local/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +1299 -0
  897. data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +2164 -0
  898. data/vendor/local/share/gtk-doc/html/glib/glib-Data-Checksums.html +644 -0
  899. data/vendor/local/share/gtk-doc/html/glib/glib-Data-HMACs.html +549 -0
  900. data/vendor/local/share/gtk-doc/html/glib/glib-Datasets.html +662 -0
  901. data/vendor/local/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +2808 -0
  902. data/vendor/local/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html +2101 -0
  903. data/vendor/local/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +1860 -0
  904. data/vendor/local/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +1941 -0
  905. data/vendor/local/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +664 -0
  906. data/vendor/local/share/gtk-doc/html/glib/glib-Error-Reporting.html +1226 -0
  907. data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +2516 -0
  908. data/vendor/local/share/gtk-doc/html/glib/glib-GDateTime.html +2430 -0
  909. data/vendor/local/share/gtk-doc/html/glib/glib-GTimeZone.html +664 -0
  910. data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +6967 -0
  911. data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +1842 -0
  912. data/vendor/local/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +373 -0
  913. data/vendor/local/share/gtk-doc/html/glib/glib-Hash-Tables.html +2260 -0
  914. data/vendor/local/share/gtk-doc/html/glib/glib-Hook-Functions.html +1817 -0
  915. data/vendor/local/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +287 -0
  916. data/vendor/local/share/gtk-doc/html/glib/glib-I18N.html +814 -0
  917. data/vendor/local/share/gtk-doc/html/glib/glib-IO-Channels.html +2662 -0
  918. data/vendor/local/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +3457 -0
  919. data/vendor/local/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +1007 -0
  920. data/vendor/local/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +1878 -0
  921. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocation.html +1375 -0
  922. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Slices.html +625 -0
  923. data/vendor/local/share/gtk-doc/html/glib/glib-Message-Logging.html +947 -0
  924. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +1180 -0
  925. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +2274 -0
  926. data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +1995 -0
  927. data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +236 -0
  928. data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +3551 -0
  929. data/vendor/local/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +1059 -0
  930. data/vendor/local/share/gtk-doc/html/glib/glib-Quarks.html +378 -0
  931. data/vendor/local/share/gtk-doc/html/glib/glib-Random-Numbers.html +775 -0
  932. data/vendor/local/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +660 -0
  933. data/vendor/local/share/gtk-doc/html/glib/glib-Sequences.html +2054 -0
  934. data/vendor/local/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +302 -0
  935. data/vendor/local/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +1491 -0
  936. data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +1560 -0
  937. data/vendor/local/share/gtk-doc/html/glib/glib-Spawning-Processes.html +1165 -0
  938. data/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html +593 -0
  939. data/vendor/local/share/gtk-doc/html/glib/glib-String-Chunks.html +374 -0
  940. data/vendor/local/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +4052 -0
  941. data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +1797 -0
  942. data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +3149 -0
  943. data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +5082 -0
  944. data/vendor/local/share/gtk-doc/html/glib/glib-Thread-Pools.html +774 -0
  945. data/vendor/local/share/gtk-doc/html/glib/glib-Threads.html +3183 -0
  946. data/vendor/local/share/gtk-doc/html/glib/glib-Timers.html +319 -0
  947. data/vendor/local/share/gtk-doc/html/glib/glib-Trash-Stacks.html +254 -0
  948. data/vendor/local/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +309 -0
  949. data/vendor/local/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html +618 -0
  950. data/vendor/local/share/gtk-doc/html/glib/glib-URI-Functions.html +508 -0
  951. data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +4995 -0
  952. data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +483 -0
  953. data/vendor/local/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +598 -0
  954. data/vendor/local/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +585 -0
  955. data/vendor/local/share/gtk-doc/html/glib/glib-building.html +438 -0
  956. data/vendor/local/share/gtk-doc/html/glib/glib-changes.html +153 -0
  957. data/vendor/local/share/gtk-doc/html/glib/glib-compiling.html +145 -0
  958. data/vendor/local/share/gtk-doc/html/glib/glib-core.html +68 -0
  959. data/vendor/local/share/gtk-doc/html/glib/glib-cross-compiling.html +165 -0
  960. data/vendor/local/share/gtk-doc/html/glib/glib-data-types.html +100 -0
  961. data/vendor/local/share/gtk-doc/html/glib/glib-fundamentals.html +57 -0
  962. data/vendor/local/share/gtk-doc/html/glib/glib-gettextize.html +96 -0
  963. data/vendor/local/share/gtk-doc/html/glib/glib-programming.html +76 -0
  964. data/vendor/local/share/gtk-doc/html/glib/glib-regex-syntax.html +2217 -0
  965. data/vendor/local/share/gtk-doc/html/glib/glib-resources.html +124 -0
  966. data/vendor/local/share/gtk-doc/html/glib/glib-running.html +295 -0
  967. data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +126 -0
  968. data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +2399 -0
  969. data/vendor/local/share/gtk-doc/html/glib/glib.html +72 -0
  970. data/vendor/local/share/gtk-doc/html/glib/gtester-report.html +81 -0
  971. data/vendor/local/share/gtk-doc/html/glib/gtester.html +187 -0
  972. data/vendor/local/share/gtk-doc/html/glib/gvariant-format-strings.html +1338 -0
  973. data/vendor/local/share/gtk-doc/html/glib/gvariant-text.html +667 -0
  974. data/vendor/local/share/gtk-doc/html/glib/home.png +0 -0
  975. data/vendor/local/share/gtk-doc/html/glib/index.html +358 -0
  976. data/vendor/local/share/gtk-doc/html/glib/index.sgml +2782 -0
  977. data/vendor/local/share/gtk-doc/html/glib/left-insensitive.png +0 -0
  978. data/vendor/local/share/gtk-doc/html/glib/left.png +0 -0
  979. data/vendor/local/share/gtk-doc/html/glib/mainloop-states.gif +0 -0
  980. data/vendor/local/share/gtk-doc/html/glib/right-insensitive.png +0 -0
  981. data/vendor/local/share/gtk-doc/html/glib/right.png +0 -0
  982. data/vendor/local/share/gtk-doc/html/glib/style.css +476 -0
  983. data/vendor/local/share/gtk-doc/html/glib/tools.html +41 -0
  984. data/vendor/local/share/gtk-doc/html/glib/up-insensitive.png +0 -0
  985. data/vendor/local/share/gtk-doc/html/glib/up.png +0 -0
  986. data/vendor/local/share/gtk-doc/html/gobject/GBinding.html +981 -0
  987. data/vendor/local/share/gtk-doc/html/gobject/GTypeModule.html +814 -0
  988. data/vendor/local/share/gtk-doc/html/gobject/GTypePlugin.html +558 -0
  989. data/vendor/local/share/gtk-doc/html/gobject/annotation-glossary.html +76 -0
  990. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-10.html +80 -0
  991. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-12.html +50 -0
  992. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-14.html +46 -0
  993. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-18.html +43 -0
  994. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-2.html +35 -0
  995. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-22.html +43 -0
  996. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-24.html +68 -0
  997. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-26.html +196 -0
  998. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-28.html +42 -0
  999. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-30.html +65 -0
  1000. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-32.html +76 -0
  1001. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-34.html +58 -0
  1002. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-36.html +51 -0
  1003. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-38.html +68 -0
  1004. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-4.html +173 -0
  1005. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-40.html +35 -0
  1006. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-42.html +35 -0
  1007. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-6.html +39 -0
  1008. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-8.html +39 -0
  1009. data/vendor/local/share/gtk-doc/html/gobject/api-index-deprecated.html +132 -0
  1010. data/vendor/local/share/gtk-doc/html/gobject/api-index-full.html +2999 -0
  1011. data/vendor/local/share/gtk-doc/html/gobject/ch01s02.html +136 -0
  1012. data/vendor/local/share/gtk-doc/html/gobject/chapter-gobject.html +290 -0
  1013. data/vendor/local/share/gtk-doc/html/gobject/chapter-gtype.html +263 -0
  1014. data/vendor/local/share/gtk-doc/html/gobject/chapter-intro.html +92 -0
  1015. data/vendor/local/share/gtk-doc/html/gobject/chapter-signal.html +214 -0
  1016. data/vendor/local/share/gtk-doc/html/gobject/glib-genmarshal.html +380 -0
  1017. data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +337 -0
  1018. data/vendor/local/share/gtk-doc/html/gobject/glue.png +0 -0
  1019. data/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +677 -0
  1020. data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +3510 -0
  1021. data/vendor/local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +1110 -0
  1022. data/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html +1937 -0
  1023. data/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html +1101 -0
  1024. data/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html +3395 -0
  1025. data/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +7262 -0
  1026. data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +4119 -0
  1027. data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +6080 -0
  1028. data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +644 -0
  1029. data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +309 -0
  1030. data/vendor/local/share/gtk-doc/html/gobject/gobject-memory.html +234 -0
  1031. data/vendor/local/share/gtk-doc/html/gobject/gobject-properties.html +392 -0
  1032. data/vendor/local/share/gtk-doc/html/gobject/gobject-query.html +128 -0
  1033. data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +838 -0
  1034. data/vendor/local/share/gtk-doc/html/gobject/gtype-conventions.html +141 -0
  1035. data/vendor/local/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +288 -0
  1036. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +378 -0
  1037. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable.html +76 -0
  1038. data/vendor/local/share/gtk-doc/html/gobject/home.png +0 -0
  1039. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-chainup.html +98 -0
  1040. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-code.html +88 -0
  1041. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-construction.html +172 -0
  1042. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-destruction.html +117 -0
  1043. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-methods.html +250 -0
  1044. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject.html +270 -0
  1045. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-implement.html +137 -0
  1046. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-override.html +133 -0
  1047. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-prerequisite.html +123 -0
  1048. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-properties.html +153 -0
  1049. data/vendor/local/share/gtk-doc/html/gobject/howto-interface.html +149 -0
  1050. data/vendor/local/share/gtk-doc/html/gobject/howto-signals.html +121 -0
  1051. data/vendor/local/share/gtk-doc/html/gobject/index.html +201 -0
  1052. data/vendor/local/share/gtk-doc/html/gobject/index.sgml +869 -0
  1053. data/vendor/local/share/gtk-doc/html/gobject/left-insensitive.png +0 -0
  1054. data/vendor/local/share/gtk-doc/html/gobject/left.png +0 -0
  1055. data/vendor/local/share/gtk-doc/html/gobject/pr01.html +72 -0
  1056. data/vendor/local/share/gtk-doc/html/gobject/pt01.html +80 -0
  1057. data/vendor/local/share/gtk-doc/html/gobject/pt02.html +67 -0
  1058. data/vendor/local/share/gtk-doc/html/gobject/pt03.html +55 -0
  1059. data/vendor/local/share/gtk-doc/html/gobject/right-insensitive.png +0 -0
  1060. data/vendor/local/share/gtk-doc/html/gobject/right.png +0 -0
  1061. data/vendor/local/share/gtk-doc/html/gobject/rn01.html +85 -0
  1062. data/vendor/local/share/gtk-doc/html/gobject/rn02.html +47 -0
  1063. data/vendor/local/share/gtk-doc/html/gobject/signal.html +378 -0
  1064. data/vendor/local/share/gtk-doc/html/gobject/style.css +476 -0
  1065. data/vendor/local/share/gtk-doc/html/gobject/tools-ginspector.html +35 -0
  1066. data/vendor/local/share/gtk-doc/html/gobject/tools-gob.html +40 -0
  1067. data/vendor/local/share/gtk-doc/html/gobject/tools-gtkdoc.html +63 -0
  1068. data/vendor/local/share/gtk-doc/html/gobject/tools-refdb.html +48 -0
  1069. data/vendor/local/share/gtk-doc/html/gobject/tools-vala.html +43 -0
  1070. data/vendor/local/share/gtk-doc/html/gobject/up-insensitive.png +0 -0
  1071. data/vendor/local/share/gtk-doc/html/gobject/up.png +0 -0
  1072. data/vendor/local/share/info/autosprintf.info +133 -0
  1073. data/vendor/local/share/info/dir +43 -0
  1074. data/vendor/local/share/info/gmp.info +181 -0
  1075. data/vendor/local/share/info/gmp.info-1 +7073 -0
  1076. data/vendor/local/share/info/gmp.info-2 +3865 -0
  1077. data/vendor/local/share/info/gnutls-client-server-use-case.png +0 -0
  1078. data/vendor/local/share/info/gnutls-guile.info +1589 -0
  1079. data/vendor/local/share/info/gnutls-handshake-sequence.png +0 -0
  1080. data/vendor/local/share/info/gnutls-handshake-state.png +0 -0
  1081. data/vendor/local/share/info/gnutls-internals.png +0 -0
  1082. data/vendor/local/share/info/gnutls-layers.png +0 -0
  1083. data/vendor/local/share/info/gnutls-logo.png +0 -0
  1084. data/vendor/local/share/info/gnutls-modauth.png +0 -0
  1085. data/vendor/local/share/info/gnutls-pgp.png +0 -0
  1086. data/vendor/local/share/info/gnutls-x509.png +0 -0
  1087. data/vendor/local/share/info/gnutls.info +1371 -0
  1088. data/vendor/local/share/info/gnutls.info-1 +7371 -0
  1089. data/vendor/local/share/info/gnutls.info-2 +7842 -0
  1090. data/vendor/local/share/info/gnutls.info-3 +11715 -0
  1091. data/vendor/local/share/info/gnutls.info-4 +6737 -0
  1092. data/vendor/local/share/info/gnutls.info-5 +2308 -0
  1093. data/vendor/local/share/info/libffi.info +765 -0
  1094. data/vendor/local/share/info/pkcs11-vision.png +0 -0
  1095. data/vendor/local/share/license/gettext/AUTHORS +2 -0
  1096. data/vendor/local/share/license/gettext/COPYING +13 -0
  1097. data/vendor/local/share/license/glib-networking/AUTHORS +0 -0
  1098. data/vendor/local/share/license/glib-networking/COPYING +481 -0
  1099. data/vendor/local/share/license/glib/AUTHORS +40 -0
  1100. data/vendor/local/share/license/glib/COPYING +482 -0
  1101. data/vendor/local/share/license/gmp/AUTHORS +100 -0
  1102. data/vendor/local/share/license/gmp/COPYING +674 -0
  1103. data/vendor/local/share/license/gnutls/AUTHORS +92 -0
  1104. data/vendor/local/share/license/gnutls/COPYING +674 -0
  1105. data/vendor/local/share/license/libiconv/AUTHORS +1 -0
  1106. data/vendor/local/share/license/libiconv/COPYING +674 -0
  1107. data/vendor/local/share/license/libiconv/COPYING.LIB +482 -0
  1108. data/vendor/local/share/license/nettle/AUTHORS +1 -0
  1109. data/vendor/local/share/license/nettle/COPYING.LIB +510 -0
  1110. data/vendor/local/share/locale/af/LC_MESSAGES/glib20.mo +0 -0
  1111. data/vendor/local/share/locale/am/LC_MESSAGES/glib20.mo +0 -0
  1112. data/vendor/local/share/locale/an/LC_MESSAGES/glib-networking.mo +0 -0
  1113. data/vendor/local/share/locale/an/LC_MESSAGES/glib20.mo +0 -0
  1114. data/vendor/local/share/locale/ar/LC_MESSAGES/glib-networking.mo +0 -0
  1115. data/vendor/local/share/locale/ar/LC_MESSAGES/glib20.mo +0 -0
  1116. data/vendor/local/share/locale/as/LC_MESSAGES/glib-networking.mo +0 -0
  1117. data/vendor/local/share/locale/as/LC_MESSAGES/glib20.mo +0 -0
  1118. data/vendor/local/share/locale/ast/LC_MESSAGES/glib20.mo +0 -0
  1119. data/vendor/local/share/locale/az/LC_MESSAGES/glib20.mo +0 -0
  1120. data/vendor/local/share/locale/be/LC_MESSAGES/gettext-runtime.mo +0 -0
  1121. data/vendor/local/share/locale/be/LC_MESSAGES/glib-networking.mo +0 -0
  1122. data/vendor/local/share/locale/be/LC_MESSAGES/glib20.mo +0 -0
  1123. data/vendor/local/share/locale/be@latin/LC_MESSAGES/glib20.mo +0 -0
  1124. data/vendor/local/share/locale/bg/LC_MESSAGES/gettext-runtime.mo +0 -0
  1125. data/vendor/local/share/locale/bg/LC_MESSAGES/glib-networking.mo +0 -0
  1126. data/vendor/local/share/locale/bg/LC_MESSAGES/glib20.mo +0 -0
  1127. data/vendor/local/share/locale/bn/LC_MESSAGES/glib20.mo +0 -0
  1128. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib-networking.mo +0 -0
  1129. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib20.mo +0 -0
  1130. data/vendor/local/share/locale/bs/LC_MESSAGES/glib20.mo +0 -0
  1131. data/vendor/local/share/locale/ca/LC_MESSAGES/gettext-runtime.mo +0 -0
  1132. data/vendor/local/share/locale/ca/LC_MESSAGES/glib-networking.mo +0 -0
  1133. data/vendor/local/share/locale/ca/LC_MESSAGES/glib20.mo +0 -0
  1134. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib-networking.mo +0 -0
  1135. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +0 -0
  1136. data/vendor/local/share/locale/cs/LC_MESSAGES/gettext-runtime.mo +0 -0
  1137. data/vendor/local/share/locale/cs/LC_MESSAGES/glib-networking.mo +0 -0
  1138. data/vendor/local/share/locale/cs/LC_MESSAGES/glib20.mo +0 -0
  1139. data/vendor/local/share/locale/cs/LC_MESSAGES/gnutls.mo +0 -0
  1140. data/vendor/local/share/locale/cy/LC_MESSAGES/glib20.mo +0 -0
  1141. data/vendor/local/share/locale/da/LC_MESSAGES/gettext-runtime.mo +0 -0
  1142. data/vendor/local/share/locale/da/LC_MESSAGES/glib-networking.mo +0 -0
  1143. data/vendor/local/share/locale/da/LC_MESSAGES/glib20.mo +0 -0
  1144. data/vendor/local/share/locale/de/LC_MESSAGES/gettext-runtime.mo +0 -0
  1145. data/vendor/local/share/locale/de/LC_MESSAGES/glib-networking.mo +0 -0
  1146. data/vendor/local/share/locale/de/LC_MESSAGES/glib20.mo +0 -0
  1147. data/vendor/local/share/locale/de/LC_MESSAGES/gnutls.mo +0 -0
  1148. data/vendor/local/share/locale/dz/LC_MESSAGES/glib20.mo +0 -0
  1149. data/vendor/local/share/locale/el/LC_MESSAGES/gettext-runtime.mo +0 -0
  1150. data/vendor/local/share/locale/el/LC_MESSAGES/glib-networking.mo +0 -0
  1151. data/vendor/local/share/locale/el/LC_MESSAGES/glib20.mo +0 -0
  1152. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/gettext-runtime.mo +0 -0
  1153. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/gnutls.mo +0 -0
  1154. data/vendor/local/share/locale/en@quot/LC_MESSAGES/gettext-runtime.mo +0 -0
  1155. data/vendor/local/share/locale/en@quot/LC_MESSAGES/gnutls.mo +0 -0
  1156. data/vendor/local/share/locale/en@shaw/LC_MESSAGES/glib20.mo +0 -0
  1157. data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib-networking.mo +0 -0
  1158. data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib20.mo +0 -0
  1159. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib-networking.mo +0 -0
  1160. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib20.mo +0 -0
  1161. data/vendor/local/share/locale/eo/LC_MESSAGES/gettext-runtime.mo +0 -0
  1162. data/vendor/local/share/locale/eo/LC_MESSAGES/glib-networking.mo +0 -0
  1163. data/vendor/local/share/locale/eo/LC_MESSAGES/glib20.mo +0 -0
  1164. data/vendor/local/share/locale/eo/LC_MESSAGES/gnutls.mo +0 -0
  1165. data/vendor/local/share/locale/es/LC_MESSAGES/gettext-runtime.mo +0 -0
  1166. data/vendor/local/share/locale/es/LC_MESSAGES/glib-networking.mo +0 -0
  1167. data/vendor/local/share/locale/es/LC_MESSAGES/glib20.mo +0 -0
  1168. data/vendor/local/share/locale/et/LC_MESSAGES/gettext-runtime.mo +0 -0
  1169. data/vendor/local/share/locale/et/LC_MESSAGES/glib-networking.mo +0 -0
  1170. data/vendor/local/share/locale/et/LC_MESSAGES/glib20.mo +0 -0
  1171. data/vendor/local/share/locale/eu/LC_MESSAGES/glib-networking.mo +0 -0
  1172. data/vendor/local/share/locale/eu/LC_MESSAGES/glib20.mo +0 -0
  1173. data/vendor/local/share/locale/fa/LC_MESSAGES/glib-networking.mo +0 -0
  1174. data/vendor/local/share/locale/fa/LC_MESSAGES/glib20.mo +0 -0
  1175. data/vendor/local/share/locale/fi/LC_MESSAGES/gettext-runtime.mo +0 -0
  1176. data/vendor/local/share/locale/fi/LC_MESSAGES/glib-networking.mo +0 -0
  1177. data/vendor/local/share/locale/fi/LC_MESSAGES/glib20.mo +0 -0
  1178. data/vendor/local/share/locale/fi/LC_MESSAGES/gnutls.mo +0 -0
  1179. data/vendor/local/share/locale/fr/LC_MESSAGES/gettext-runtime.mo +0 -0
  1180. data/vendor/local/share/locale/fr/LC_MESSAGES/glib-networking.mo +0 -0
  1181. data/vendor/local/share/locale/fr/LC_MESSAGES/glib20.mo +0 -0
  1182. data/vendor/local/share/locale/fr/LC_MESSAGES/gnutls.mo +0 -0
  1183. data/vendor/local/share/locale/fur/LC_MESSAGES/glib-networking.mo +0 -0
  1184. data/vendor/local/share/locale/ga/LC_MESSAGES/gettext-runtime.mo +0 -0
  1185. data/vendor/local/share/locale/ga/LC_MESSAGES/glib20.mo +0 -0
  1186. data/vendor/local/share/locale/gl/LC_MESSAGES/gettext-runtime.mo +0 -0
  1187. data/vendor/local/share/locale/gl/LC_MESSAGES/glib-networking.mo +0 -0
  1188. data/vendor/local/share/locale/gl/LC_MESSAGES/glib20.mo +0 -0
  1189. data/vendor/local/share/locale/gu/LC_MESSAGES/glib-networking.mo +0 -0
  1190. data/vendor/local/share/locale/gu/LC_MESSAGES/glib20.mo +0 -0
  1191. data/vendor/local/share/locale/he/LC_MESSAGES/glib-networking.mo +0 -0
  1192. data/vendor/local/share/locale/he/LC_MESSAGES/glib20.mo +0 -0
  1193. data/vendor/local/share/locale/hi/LC_MESSAGES/glib-networking.mo +0 -0
  1194. data/vendor/local/share/locale/hi/LC_MESSAGES/glib20.mo +0 -0
  1195. data/vendor/local/share/locale/hr/LC_MESSAGES/gettext-runtime.mo +0 -0
  1196. data/vendor/local/share/locale/hr/LC_MESSAGES/glib20.mo +0 -0
  1197. data/vendor/local/share/locale/hu/LC_MESSAGES/gettext-runtime.mo +0 -0
  1198. data/vendor/local/share/locale/hu/LC_MESSAGES/glib-networking.mo +0 -0
  1199. data/vendor/local/share/locale/hu/LC_MESSAGES/glib20.mo +0 -0
  1200. data/vendor/local/share/locale/hy/LC_MESSAGES/glib20.mo +0 -0
  1201. data/vendor/local/share/locale/id/LC_MESSAGES/gettext-runtime.mo +0 -0
  1202. data/vendor/local/share/locale/id/LC_MESSAGES/glib-networking.mo +0 -0
  1203. data/vendor/local/share/locale/id/LC_MESSAGES/glib20.mo +0 -0
  1204. data/vendor/local/share/locale/is/LC_MESSAGES/glib20.mo +0 -0
  1205. data/vendor/local/share/locale/it/LC_MESSAGES/gettext-runtime.mo +0 -0
  1206. data/vendor/local/share/locale/it/LC_MESSAGES/glib-networking.mo +0 -0
  1207. data/vendor/local/share/locale/it/LC_MESSAGES/glib20.mo +0 -0
  1208. data/vendor/local/share/locale/it/LC_MESSAGES/gnutls.mo +0 -0
  1209. data/vendor/local/share/locale/ja/LC_MESSAGES/gettext-runtime.mo +0 -0
  1210. data/vendor/local/share/locale/ja/LC_MESSAGES/glib-networking.mo +0 -0
  1211. data/vendor/local/share/locale/ja/LC_MESSAGES/glib20.mo +0 -0
  1212. data/vendor/local/share/locale/ka/LC_MESSAGES/glib20.mo +0 -0
  1213. data/vendor/local/share/locale/kk/LC_MESSAGES/glib-networking.mo +0 -0
  1214. data/vendor/local/share/locale/kk/LC_MESSAGES/glib20.mo +0 -0
  1215. data/vendor/local/share/locale/km/LC_MESSAGES/glib-networking.mo +0 -0
  1216. data/vendor/local/share/locale/kn/LC_MESSAGES/glib-networking.mo +0 -0
  1217. data/vendor/local/share/locale/kn/LC_MESSAGES/glib20.mo +0 -0
  1218. data/vendor/local/share/locale/ko/LC_MESSAGES/gettext-runtime.mo +0 -0
  1219. data/vendor/local/share/locale/ko/LC_MESSAGES/glib-networking.mo +0 -0
  1220. data/vendor/local/share/locale/ko/LC_MESSAGES/glib20.mo +0 -0
  1221. data/vendor/local/share/locale/ku/LC_MESSAGES/glib20.mo +0 -0
  1222. data/vendor/local/share/locale/locale.alias +75 -0
  1223. data/vendor/local/share/locale/lt/LC_MESSAGES/glib-networking.mo +0 -0
  1224. data/vendor/local/share/locale/lt/LC_MESSAGES/glib20.mo +0 -0
  1225. data/vendor/local/share/locale/lv/LC_MESSAGES/glib-networking.mo +0 -0
  1226. data/vendor/local/share/locale/lv/LC_MESSAGES/glib20.mo +0 -0
  1227. data/vendor/local/share/locale/mai/LC_MESSAGES/glib20.mo +0 -0
  1228. data/vendor/local/share/locale/mg/LC_MESSAGES/glib20.mo +0 -0
  1229. data/vendor/local/share/locale/mk/LC_MESSAGES/glib20.mo +0 -0
  1230. data/vendor/local/share/locale/ml/LC_MESSAGES/glib-networking.mo +0 -0
  1231. data/vendor/local/share/locale/ml/LC_MESSAGES/glib20.mo +0 -0
  1232. data/vendor/local/share/locale/mn/LC_MESSAGES/glib20.mo +0 -0
  1233. data/vendor/local/share/locale/mr/LC_MESSAGES/glib-networking.mo +0 -0
  1234. data/vendor/local/share/locale/mr/LC_MESSAGES/glib20.mo +0 -0
  1235. data/vendor/local/share/locale/ms/LC_MESSAGES/glib20.mo +0 -0
  1236. data/vendor/local/share/locale/ms/LC_MESSAGES/gnutls.mo +0 -0
  1237. data/vendor/local/share/locale/nb/LC_MESSAGES/gettext-runtime.mo +0 -0
  1238. data/vendor/local/share/locale/nb/LC_MESSAGES/glib-networking.mo +0 -0
  1239. data/vendor/local/share/locale/nb/LC_MESSAGES/glib20.mo +0 -0
  1240. data/vendor/local/share/locale/nds/LC_MESSAGES/glib20.mo +0 -0
  1241. data/vendor/local/share/locale/ne/LC_MESSAGES/glib20.mo +0 -0
  1242. data/vendor/local/share/locale/nl/LC_MESSAGES/gettext-runtime.mo +0 -0
  1243. data/vendor/local/share/locale/nl/LC_MESSAGES/glib-networking.mo +0 -0
  1244. data/vendor/local/share/locale/nl/LC_MESSAGES/glib20.mo +0 -0
  1245. data/vendor/local/share/locale/nl/LC_MESSAGES/gnutls.mo +0 -0
  1246. data/vendor/local/share/locale/nn/LC_MESSAGES/gettext-runtime.mo +0 -0
  1247. data/vendor/local/share/locale/nn/LC_MESSAGES/glib20.mo +0 -0
  1248. data/vendor/local/share/locale/oc/LC_MESSAGES/glib20.mo +0 -0
  1249. data/vendor/local/share/locale/or/LC_MESSAGES/glib-networking.mo +0 -0
  1250. data/vendor/local/share/locale/or/LC_MESSAGES/glib20.mo +0 -0
  1251. data/vendor/local/share/locale/pa/LC_MESSAGES/glib-networking.mo +0 -0
  1252. data/vendor/local/share/locale/pa/LC_MESSAGES/glib20.mo +0 -0
  1253. data/vendor/local/share/locale/pl/LC_MESSAGES/gettext-runtime.mo +0 -0
  1254. data/vendor/local/share/locale/pl/LC_MESSAGES/glib-networking.mo +0 -0
  1255. data/vendor/local/share/locale/pl/LC_MESSAGES/glib20.mo +0 -0
  1256. data/vendor/local/share/locale/pl/LC_MESSAGES/gnutls.mo +0 -0
  1257. data/vendor/local/share/locale/ps/LC_MESSAGES/glib20.mo +0 -0
  1258. data/vendor/local/share/locale/pt/LC_MESSAGES/gettext-runtime.mo +0 -0
  1259. data/vendor/local/share/locale/pt/LC_MESSAGES/glib-networking.mo +0 -0
  1260. data/vendor/local/share/locale/pt/LC_MESSAGES/glib20.mo +0 -0
  1261. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo +0 -0
  1262. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib-networking.mo +0 -0
  1263. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib20.mo +0 -0
  1264. data/vendor/local/share/locale/ro/LC_MESSAGES/gettext-runtime.mo +0 -0
  1265. data/vendor/local/share/locale/ro/LC_MESSAGES/glib-networking.mo +0 -0
  1266. data/vendor/local/share/locale/ro/LC_MESSAGES/glib20.mo +0 -0
  1267. data/vendor/local/share/locale/ru/LC_MESSAGES/gettext-runtime.mo +0 -0
  1268. data/vendor/local/share/locale/ru/LC_MESSAGES/glib-networking.mo +0 -0
  1269. data/vendor/local/share/locale/ru/LC_MESSAGES/glib20.mo +0 -0
  1270. data/vendor/local/share/locale/rw/LC_MESSAGES/glib20.mo +0 -0
  1271. data/vendor/local/share/locale/si/LC_MESSAGES/glib20.mo +0 -0
  1272. data/vendor/local/share/locale/sk/LC_MESSAGES/gettext-runtime.mo +0 -0
  1273. data/vendor/local/share/locale/sk/LC_MESSAGES/glib-networking.mo +0 -0
  1274. data/vendor/local/share/locale/sk/LC_MESSAGES/glib20.mo +0 -0
  1275. data/vendor/local/share/locale/sl/LC_MESSAGES/gettext-runtime.mo +0 -0
  1276. data/vendor/local/share/locale/sl/LC_MESSAGES/glib-networking.mo +0 -0
  1277. data/vendor/local/share/locale/sl/LC_MESSAGES/glib20.mo +0 -0
  1278. data/vendor/local/share/locale/sq/LC_MESSAGES/glib20.mo +0 -0
  1279. data/vendor/local/share/locale/sr/LC_MESSAGES/gettext-runtime.mo +0 -0
  1280. data/vendor/local/share/locale/sr/LC_MESSAGES/glib-networking.mo +0 -0
  1281. data/vendor/local/share/locale/sr/LC_MESSAGES/glib20.mo +0 -0
  1282. data/vendor/local/share/locale/sr@ije/LC_MESSAGES/glib20.mo +0 -0
  1283. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib-networking.mo +0 -0
  1284. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo +0 -0
  1285. data/vendor/local/share/locale/sv/LC_MESSAGES/gettext-runtime.mo +0 -0
  1286. data/vendor/local/share/locale/sv/LC_MESSAGES/glib-networking.mo +0 -0
  1287. data/vendor/local/share/locale/sv/LC_MESSAGES/glib20.mo +0 -0
  1288. data/vendor/local/share/locale/sv/LC_MESSAGES/gnutls.mo +0 -0
  1289. data/vendor/local/share/locale/ta/LC_MESSAGES/glib-networking.mo +0 -0
  1290. data/vendor/local/share/locale/ta/LC_MESSAGES/glib20.mo +0 -0
  1291. data/vendor/local/share/locale/te/LC_MESSAGES/glib-networking.mo +0 -0
  1292. data/vendor/local/share/locale/te/LC_MESSAGES/glib20.mo +0 -0
  1293. data/vendor/local/share/locale/tg/LC_MESSAGES/glib-networking.mo +0 -0
  1294. data/vendor/local/share/locale/tg/LC_MESSAGES/glib20.mo +0 -0
  1295. data/vendor/local/share/locale/th/LC_MESSAGES/glib-networking.mo +0 -0
  1296. data/vendor/local/share/locale/th/LC_MESSAGES/glib20.mo +0 -0
  1297. data/vendor/local/share/locale/tl/LC_MESSAGES/glib20.mo +0 -0
  1298. data/vendor/local/share/locale/tr/LC_MESSAGES/gettext-runtime.mo +0 -0
  1299. data/vendor/local/share/locale/tr/LC_MESSAGES/glib-networking.mo +0 -0
  1300. data/vendor/local/share/locale/tr/LC_MESSAGES/glib20.mo +0 -0
  1301. data/vendor/local/share/locale/tt/LC_MESSAGES/glib20.mo +0 -0
  1302. data/vendor/local/share/locale/ug/LC_MESSAGES/glib-networking.mo +0 -0
  1303. data/vendor/local/share/locale/ug/LC_MESSAGES/glib20.mo +0 -0
  1304. data/vendor/local/share/locale/uk/LC_MESSAGES/gettext-runtime.mo +0 -0
  1305. data/vendor/local/share/locale/uk/LC_MESSAGES/glib-networking.mo +0 -0
  1306. data/vendor/local/share/locale/uk/LC_MESSAGES/glib20.mo +0 -0
  1307. data/vendor/local/share/locale/uk/LC_MESSAGES/gnutls.mo +0 -0
  1308. data/vendor/local/share/locale/vi/LC_MESSAGES/gettext-runtime.mo +0 -0
  1309. data/vendor/local/share/locale/vi/LC_MESSAGES/glib-networking.mo +0 -0
  1310. data/vendor/local/share/locale/vi/LC_MESSAGES/glib20.mo +0 -0
  1311. data/vendor/local/share/locale/vi/LC_MESSAGES/gnutls.mo +0 -0
  1312. data/vendor/local/share/locale/wa/LC_MESSAGES/glib20.mo +0 -0
  1313. data/vendor/local/share/locale/xh/LC_MESSAGES/glib20.mo +0 -0
  1314. data/vendor/local/share/locale/yi/LC_MESSAGES/glib20.mo +0 -0
  1315. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/gettext-runtime.mo +0 -0
  1316. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib-networking.mo +0 -0
  1317. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib20.mo +0 -0
  1318. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/gnutls.mo +0 -0
  1319. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/gettext-runtime.mo +0 -0
  1320. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib-networking.mo +0 -0
  1321. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib20.mo +0 -0
  1322. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/gettext-runtime.mo +0 -0
  1323. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib-networking.mo +0 -0
  1324. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib20.mo +0 -0
  1325. data/vendor/local/share/man/man1/certtool.1 +741 -0
  1326. data/vendor/local/share/man/man1/envsubst.1 +54 -0
  1327. data/vendor/local/share/man/man1/gettext.1 +69 -0
  1328. data/vendor/local/share/man/man1/gnutls-cli-debug.1 +165 -0
  1329. data/vendor/local/share/man/man1/gnutls-cli.1 +420 -0
  1330. data/vendor/local/share/man/man1/gnutls-serv.1 +453 -0
  1331. data/vendor/local/share/man/man1/iconv.1 +108 -0
  1332. data/vendor/local/share/man/man1/ngettext.1 +68 -0
  1333. data/vendor/local/share/man/man1/ocsptool.1 +335 -0
  1334. data/vendor/local/share/man/man1/p11tool.1 +320 -0
  1335. data/vendor/local/share/man/man1/psktool.1 +129 -0
  1336. data/vendor/local/share/man/man1/srptool.1 +164 -0
  1337. data/vendor/local/share/man/man1/tpmtool.1 +223 -0
  1338. data/vendor/local/share/man/man3/bind_textdomain_codeset.3 +72 -0
  1339. data/vendor/local/share/man/man3/bindtextdomain.3 +69 -0
  1340. data/vendor/local/share/man/man3/dcgettext.3 +1 -0
  1341. data/vendor/local/share/man/man3/dcngettext.3 +1 -0
  1342. data/vendor/local/share/man/man3/dgettext.3 +1 -0
  1343. data/vendor/local/share/man/man3/dngettext.3 +1 -0
  1344. data/vendor/local/share/man/man3/ffi.3 +41 -0
  1345. data/vendor/local/share/man/man3/ffi_call.3 +103 -0
  1346. data/vendor/local/share/man/man3/ffi_prep_cif.3 +68 -0
  1347. data/vendor/local/share/man/man3/ffi_prep_cif_var.3 +73 -0
  1348. data/vendor/local/share/man/man3/gettext.3 +99 -0
  1349. data/vendor/local/share/man/man3/gnutls_alert_get.3 +40 -0
  1350. data/vendor/local/share/man/man3/gnutls_alert_get_name.3 +36 -0
  1351. data/vendor/local/share/man/man3/gnutls_alert_get_strname.3 +37 -0
  1352. data/vendor/local/share/man/man3/gnutls_alert_send.3 +47 -0
  1353. data/vendor/local/share/man/man3/gnutls_alert_send_appropriate.3 +46 -0
  1354. data/vendor/local/share/man/man3/gnutls_alpn_get_selected_protocol.3 +42 -0
  1355. data/vendor/local/share/man/man3/gnutls_alpn_set_protocols.3 +48 -0
  1356. data/vendor/local/share/man/man3/gnutls_anon_allocate_client_credentials.3 +36 -0
  1357. data/vendor/local/share/man/man3/gnutls_anon_allocate_server_credentials.3 +36 -0
  1358. data/vendor/local/share/man/man3/gnutls_anon_free_client_credentials.3 +34 -0
  1359. data/vendor/local/share/man/man3/gnutls_anon_free_server_credentials.3 +34 -0
  1360. data/vendor/local/share/man/man3/gnutls_anon_set_params_function.3 +37 -0
  1361. data/vendor/local/share/man/man3/gnutls_anon_set_server_dh_params.3 +37 -0
  1362. data/vendor/local/share/man/man3/gnutls_anon_set_server_params_function.3 +37 -0
  1363. data/vendor/local/share/man/man3/gnutls_auth_client_get_type.3 +38 -0
  1364. data/vendor/local/share/man/man3/gnutls_auth_get_type.3 +42 -0
  1365. data/vendor/local/share/man/man3/gnutls_auth_server_get_type.3 +38 -0
  1366. data/vendor/local/share/man/man3/gnutls_bye.3 +60 -0
  1367. data/vendor/local/share/man/man3/gnutls_certificate_activation_time_peers.3 +38 -0
  1368. data/vendor/local/share/man/man3/gnutls_certificate_allocate_credentials.3 +36 -0
  1369. data/vendor/local/share/man/man3/gnutls_certificate_client_get_request_status.3 +37 -0
  1370. data/vendor/local/share/man/man3/gnutls_certificate_client_set_retrieve_function.3 +62 -0
  1371. data/vendor/local/share/man/man3/gnutls_certificate_expiration_time_peers.3 +37 -0
  1372. data/vendor/local/share/man/man3/gnutls_certificate_free_ca_names.3 +41 -0
  1373. data/vendor/local/share/man/man3/gnutls_certificate_free_cas.3 +36 -0
  1374. data/vendor/local/share/man/man3/gnutls_certificate_free_credentials.3 +38 -0
  1375. data/vendor/local/share/man/man3/gnutls_certificate_free_crls.3 +34 -0
  1376. data/vendor/local/share/man/man3/gnutls_certificate_free_keys.3 +35 -0
  1377. data/vendor/local/share/man/man3/gnutls_certificate_get_crt_raw.3 +48 -0
  1378. data/vendor/local/share/man/man3/gnutls_certificate_get_issuer.3 +44 -0
  1379. data/vendor/local/share/man/man3/gnutls_certificate_get_ours.3 +39 -0
  1380. data/vendor/local/share/man/man3/gnutls_certificate_get_peers.3 +46 -0
  1381. data/vendor/local/share/man/man3/gnutls_certificate_get_peers_subkey_id.3 +41 -0
  1382. data/vendor/local/share/man/man3/gnutls_certificate_send_x509_rdn_sequence.3 +42 -0
  1383. data/vendor/local/share/man/man3/gnutls_certificate_server_set_request.3 +39 -0
  1384. data/vendor/local/share/man/man3/gnutls_certificate_server_set_retrieve_function.3 +50 -0
  1385. data/vendor/local/share/man/man3/gnutls_certificate_set_dh_params.3 +39 -0
  1386. data/vendor/local/share/man/man3/gnutls_certificate_set_key.3 +56 -0
  1387. data/vendor/local/share/man/man3/gnutls_certificate_set_ocsp_status_request_file.3 +47 -0
  1388. data/vendor/local/share/man/man3/gnutls_certificate_set_ocsp_status_request_function.3 +56 -0
  1389. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key.3 +47 -0
  1390. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_file.3 +43 -0
  1391. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_file2.3 +51 -0
  1392. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_mem.3 +43 -0
  1393. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_key_mem2.3 +51 -0
  1394. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_keyring_file.3 +43 -0
  1395. data/vendor/local/share/man/man3/gnutls_certificate_set_openpgp_keyring_mem.3 +45 -0
  1396. data/vendor/local/share/man/man3/gnutls_certificate_set_params_function.3 +37 -0
  1397. data/vendor/local/share/man/man3/gnutls_certificate_set_pin_function.3 +44 -0
  1398. data/vendor/local/share/man/man3/gnutls_certificate_set_retrieve_function.3 +65 -0
  1399. data/vendor/local/share/man/man3/gnutls_certificate_set_retrieve_function2.3 +68 -0
  1400. data/vendor/local/share/man/man3/gnutls_certificate_set_rsa_export_params.3 +37 -0
  1401. data/vendor/local/share/man/man3/gnutls_certificate_set_trust_list.3 +45 -0
  1402. data/vendor/local/share/man/man3/gnutls_certificate_set_verify_flags.3 +37 -0
  1403. data/vendor/local/share/man/man3/gnutls_certificate_set_verify_function.3 +51 -0
  1404. data/vendor/local/share/man/man3/gnutls_certificate_set_verify_limits.3 +40 -0
  1405. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_crl.3 +45 -0
  1406. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_crl_file.3 +43 -0
  1407. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_crl_mem.3 +43 -0
  1408. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key.3 +51 -0
  1409. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key_file.3 +58 -0
  1410. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key_file2.3 +62 -0
  1411. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key_mem.3 +54 -0
  1412. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_key_mem2.3 +58 -0
  1413. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_simple_pkcs12_file.3 +63 -0
  1414. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_simple_pkcs12_mem.3 +64 -0
  1415. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_system_trust.3 +42 -0
  1416. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_trust.3 +50 -0
  1417. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_trust_file.3 +52 -0
  1418. data/vendor/local/share/man/man3/gnutls_certificate_set_x509_trust_mem.3 +48 -0
  1419. data/vendor/local/share/man/man3/gnutls_certificate_type_get.3 +37 -0
  1420. data/vendor/local/share/man/man3/gnutls_certificate_type_get_id.3 +36 -0
  1421. data/vendor/local/share/man/man3/gnutls_certificate_type_get_name.3 +36 -0
  1422. data/vendor/local/share/man/man3/gnutls_certificate_type_list.3 +36 -0
  1423. data/vendor/local/share/man/man3/gnutls_certificate_type_set_priority.3 +42 -0
  1424. data/vendor/local/share/man/man3/gnutls_certificate_verification_status_print.3 +47 -0
  1425. data/vendor/local/share/man/man3/gnutls_certificate_verify_peers2.3 +51 -0
  1426. data/vendor/local/share/man/man3/gnutls_certificate_verify_peers3.3 +55 -0
  1427. data/vendor/local/share/man/man3/gnutls_check_version.3 +41 -0
  1428. data/vendor/local/share/man/man3/gnutls_cipher_add_auth.3 +44 -0
  1429. data/vendor/local/share/man/man3/gnutls_cipher_decrypt.3 +45 -0
  1430. data/vendor/local/share/man/man3/gnutls_cipher_decrypt2.3 +49 -0
  1431. data/vendor/local/share/man/man3/gnutls_cipher_deinit.3 +36 -0
  1432. data/vendor/local/share/man/man3/gnutls_cipher_encrypt.3 +42 -0
  1433. data/vendor/local/share/man/man3/gnutls_cipher_encrypt2.3 +46 -0
  1434. data/vendor/local/share/man/man3/gnutls_cipher_get.3 +36 -0
  1435. data/vendor/local/share/man/man3/gnutls_cipher_get_block_size.3 +35 -0
  1436. data/vendor/local/share/man/man3/gnutls_cipher_get_id.3 +36 -0
  1437. data/vendor/local/share/man/man3/gnutls_cipher_get_iv_size.3 +37 -0
  1438. data/vendor/local/share/man/man3/gnutls_cipher_get_key_size.3 +36 -0
  1439. data/vendor/local/share/man/man3/gnutls_cipher_get_name.3 +36 -0
  1440. data/vendor/local/share/man/man3/gnutls_cipher_get_tag_size.3 +35 -0
  1441. data/vendor/local/share/man/man3/gnutls_cipher_init.3 +46 -0
  1442. data/vendor/local/share/man/man3/gnutls_cipher_list.3 +41 -0
  1443. data/vendor/local/share/man/man3/gnutls_cipher_set_iv.3 +40 -0
  1444. data/vendor/local/share/man/man3/gnutls_cipher_set_priority.3 +41 -0
  1445. data/vendor/local/share/man/man3/gnutls_cipher_suite_get_name.3 +41 -0
  1446. data/vendor/local/share/man/man3/gnutls_cipher_suite_info.3 +50 -0
  1447. data/vendor/local/share/man/man3/gnutls_cipher_tag.3 +43 -0
  1448. data/vendor/local/share/man/man3/gnutls_compression_get.3 +36 -0
  1449. data/vendor/local/share/man/man3/gnutls_compression_get_id.3 +36 -0
  1450. data/vendor/local/share/man/man3/gnutls_compression_get_name.3 +36 -0
  1451. data/vendor/local/share/man/man3/gnutls_compression_list.3 +36 -0
  1452. data/vendor/local/share/man/man3/gnutls_compression_set_priority.3 +46 -0
  1453. data/vendor/local/share/man/man3/gnutls_credentials_clear.3 +33 -0
  1454. data/vendor/local/share/man/man3/gnutls_credentials_set.3 +59 -0
  1455. data/vendor/local/share/man/man3/gnutls_db_check_entry.3 +38 -0
  1456. data/vendor/local/share/man/man3/gnutls_db_check_entry_time.3 +36 -0
  1457. data/vendor/local/share/man/man3/gnutls_db_get_default_cache_expiration.3 +35 -0
  1458. data/vendor/local/share/man/man3/gnutls_db_get_ptr.3 +36 -0
  1459. data/vendor/local/share/man/man3/gnutls_db_remove_session.3 +39 -0
  1460. data/vendor/local/share/man/man3/gnutls_db_set_cache_expiration.3 +36 -0
  1461. data/vendor/local/share/man/man3/gnutls_db_set_ptr.3 +36 -0
  1462. data/vendor/local/share/man/man3/gnutls_db_set_remove_function.3 +39 -0
  1463. data/vendor/local/share/man/man3/gnutls_db_set_retrieve_function.3 +44 -0
  1464. data/vendor/local/share/man/man3/gnutls_db_set_store_function.3 +39 -0
  1465. data/vendor/local/share/man/man3/gnutls_deinit.3 +35 -0
  1466. data/vendor/local/share/man/man3/gnutls_dh_get_group.3 +44 -0
  1467. data/vendor/local/share/man/man3/gnutls_dh_get_peers_public_bits.3 +37 -0
  1468. data/vendor/local/share/man/man3/gnutls_dh_get_prime_bits.3 +41 -0
  1469. data/vendor/local/share/man/man3/gnutls_dh_get_pubkey.3 +41 -0
  1470. data/vendor/local/share/man/man3/gnutls_dh_get_secret_bits.3 +38 -0
  1471. data/vendor/local/share/man/man3/gnutls_dh_params_cpy.3 +39 -0
  1472. data/vendor/local/share/man/man3/gnutls_dh_params_deinit.3 +33 -0
  1473. data/vendor/local/share/man/man3/gnutls_dh_params_export2_pkcs3.3 +47 -0
  1474. data/vendor/local/share/man/man3/gnutls_dh_params_export_pkcs3.3 +48 -0
  1475. data/vendor/local/share/man/man3/gnutls_dh_params_export_raw.3 +45 -0
  1476. data/vendor/local/share/man/man3/gnutls_dh_params_generate2.3 +47 -0
  1477. data/vendor/local/share/man/man3/gnutls_dh_params_import_pkcs3.3 +44 -0
  1478. data/vendor/local/share/man/man3/gnutls_dh_params_import_raw.3 +42 -0
  1479. data/vendor/local/share/man/man3/gnutls_dh_params_init.3 +36 -0
  1480. data/vendor/local/share/man/man3/gnutls_dh_set_prime_bits.3 +52 -0
  1481. data/vendor/local/share/man/man3/gnutls_digest_get_id.3 +37 -0
  1482. data/vendor/local/share/man/man3/gnutls_digest_get_name.3 +36 -0
  1483. data/vendor/local/share/man/man3/gnutls_digest_list.3 +38 -0
  1484. data/vendor/local/share/man/man3/gnutls_dtls_cookie_send.3 +56 -0
  1485. data/vendor/local/share/man/man3/gnutls_dtls_cookie_verify.3 +52 -0
  1486. data/vendor/local/share/man/man3/gnutls_dtls_get_data_mtu.3 +39 -0
  1487. data/vendor/local/share/man/man3/gnutls_dtls_get_mtu.3 +40 -0
  1488. data/vendor/local/share/man/man3/gnutls_dtls_get_timeout.3 +41 -0
  1489. data/vendor/local/share/man/man3/gnutls_dtls_prestate_set.3 +42 -0
  1490. data/vendor/local/share/man/man3/gnutls_dtls_set_data_mtu.3 +48 -0
  1491. data/vendor/local/share/man/man3/gnutls_dtls_set_mtu.3 +41 -0
  1492. data/vendor/local/share/man/man3/gnutls_dtls_set_timeouts.3 +51 -0
  1493. data/vendor/local/share/man/man3/gnutls_ecc_curve_get.3 +39 -0
  1494. data/vendor/local/share/man/man3/gnutls_ecc_curve_get_name.3 +38 -0
  1495. data/vendor/local/share/man/man3/gnutls_ecc_curve_get_size.3 +37 -0
  1496. data/vendor/local/share/man/man3/gnutls_ecc_curve_list.3 +38 -0
  1497. data/vendor/local/share/man/man3/gnutls_error_is_fatal.3 +46 -0
  1498. data/vendor/local/share/man/man3/gnutls_error_to_alert.3 +44 -0
  1499. data/vendor/local/share/man/man3/gnutls_est_record_overhead_size.3 +49 -0
  1500. data/vendor/local/share/man/man3/gnutls_fingerprint.3 +50 -0
  1501. data/vendor/local/share/man/man3/gnutls_global_deinit.3 +37 -0
  1502. data/vendor/local/share/man/man3/gnutls_global_init.3 +54 -0
  1503. data/vendor/local/share/man/man3/gnutls_global_set_audit_log_function.3 +42 -0
  1504. data/vendor/local/share/man/man3/gnutls_global_set_log_function.3 +39 -0
  1505. data/vendor/local/share/man/man3/gnutls_global_set_log_level.3 +38 -0
  1506. data/vendor/local/share/man/man3/gnutls_global_set_mem_functions.3 +48 -0
  1507. data/vendor/local/share/man/man3/gnutls_global_set_mutex.3 +47 -0
  1508. data/vendor/local/share/man/man3/gnutls_global_set_time_function.3 +37 -0
  1509. data/vendor/local/share/man/man3/gnutls_handshake.3 +61 -0
  1510. data/vendor/local/share/man/man3/gnutls_handshake_description_get_name.3 +36 -0
  1511. data/vendor/local/share/man/man3/gnutls_handshake_get_last_in.3 +41 -0
  1512. data/vendor/local/share/man/man3/gnutls_handshake_get_last_out.3 +41 -0
  1513. data/vendor/local/share/man/man3/gnutls_handshake_set_hook_function.3 +55 -0
  1514. data/vendor/local/share/man/man3/gnutls_handshake_set_max_packet_length.3 +42 -0
  1515. data/vendor/local/share/man/man3/gnutls_handshake_set_post_client_hello_function.3 +49 -0
  1516. data/vendor/local/share/man/man3/gnutls_handshake_set_private_extensions.3 +42 -0
  1517. data/vendor/local/share/man/man3/gnutls_handshake_set_random.3 +46 -0
  1518. data/vendor/local/share/man/man3/gnutls_handshake_set_timeout.3 +41 -0
  1519. data/vendor/local/share/man/man3/gnutls_hash.3 +42 -0
  1520. data/vendor/local/share/man/man3/gnutls_hash_deinit.3 +38 -0
  1521. data/vendor/local/share/man/man3/gnutls_hash_fast.3 +44 -0
  1522. data/vendor/local/share/man/man3/gnutls_hash_get_len.3 +38 -0
  1523. data/vendor/local/share/man/man3/gnutls_hash_init.3 +42 -0
  1524. data/vendor/local/share/man/man3/gnutls_hash_output.3 +38 -0
  1525. data/vendor/local/share/man/man3/gnutls_heartbeat_allowed.3 +40 -0
  1526. data/vendor/local/share/man/man3/gnutls_heartbeat_enable.3 +42 -0
  1527. data/vendor/local/share/man/man3/gnutls_heartbeat_get_timeout.3 +41 -0
  1528. data/vendor/local/share/man/man3/gnutls_heartbeat_ping.3 +48 -0
  1529. data/vendor/local/share/man/man3/gnutls_heartbeat_pong.3 +39 -0
  1530. data/vendor/local/share/man/man3/gnutls_heartbeat_set_timeouts.3 +46 -0
  1531. data/vendor/local/share/man/man3/gnutls_hex2bin.3 +44 -0
  1532. data/vendor/local/share/man/man3/gnutls_hex_decode.3 +43 -0
  1533. data/vendor/local/share/man/man3/gnutls_hex_encode.3 +43 -0
  1534. data/vendor/local/share/man/man3/gnutls_hmac.3 +42 -0
  1535. data/vendor/local/share/man/man3/gnutls_hmac_deinit.3 +38 -0
  1536. data/vendor/local/share/man/man3/gnutls_hmac_fast.3 +48 -0
  1537. data/vendor/local/share/man/man3/gnutls_hmac_get_len.3 +38 -0
  1538. data/vendor/local/share/man/man3/gnutls_hmac_init.3 +49 -0
  1539. data/vendor/local/share/man/man3/gnutls_hmac_output.3 +38 -0
  1540. data/vendor/local/share/man/man3/gnutls_hmac_set_nonce.3 +39 -0
  1541. data/vendor/local/share/man/man3/gnutls_init.3 +54 -0
  1542. data/vendor/local/share/man/man3/gnutls_key_generate.3 +41 -0
  1543. data/vendor/local/share/man/man3/gnutls_kx_get.3 +36 -0
  1544. data/vendor/local/share/man/man3/gnutls_kx_get_id.3 +37 -0
  1545. data/vendor/local/share/man/man3/gnutls_kx_get_name.3 +36 -0
  1546. data/vendor/local/share/man/man3/gnutls_kx_list.3 +38 -0
  1547. data/vendor/local/share/man/man3/gnutls_kx_set_priority.3 +42 -0
  1548. data/vendor/local/share/man/man3/gnutls_load_file.3 +42 -0
  1549. data/vendor/local/share/man/man3/gnutls_mac_get.3 +36 -0
  1550. data/vendor/local/share/man/man3/gnutls_mac_get_id.3 +37 -0
  1551. data/vendor/local/share/man/man3/gnutls_mac_get_key_size.3 +36 -0
  1552. data/vendor/local/share/man/man3/gnutls_mac_get_name.3 +36 -0
  1553. data/vendor/local/share/man/man3/gnutls_mac_get_nonce_size.3 +37 -0
  1554. data/vendor/local/share/man/man3/gnutls_mac_list.3 +38 -0
  1555. data/vendor/local/share/man/man3/gnutls_mac_set_priority.3 +42 -0
  1556. data/vendor/local/share/man/man3/gnutls_ocsp_req_add_cert.3 +46 -0
  1557. data/vendor/local/share/man/man3/gnutls_ocsp_req_add_cert_id.3 +57 -0
  1558. data/vendor/local/share/man/man3/gnutls_ocsp_req_deinit.3 +33 -0
  1559. data/vendor/local/share/man/man3/gnutls_ocsp_req_export.3 +38 -0
  1560. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_cert_id.3 +61 -0
  1561. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_extension.3 +54 -0
  1562. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_nonce.3 +43 -0
  1563. data/vendor/local/share/man/man3/gnutls_ocsp_req_get_version.3 +36 -0
  1564. data/vendor/local/share/man/man3/gnutls_ocsp_req_import.3 +40 -0
  1565. data/vendor/local/share/man/man3/gnutls_ocsp_req_init.3 +36 -0
  1566. data/vendor/local/share/man/man3/gnutls_ocsp_req_print.3 +46 -0
  1567. data/vendor/local/share/man/man3/gnutls_ocsp_req_randomize_nonce.3 +37 -0
  1568. data/vendor/local/share/man/man3/gnutls_ocsp_req_set_extension.3 +44 -0
  1569. data/vendor/local/share/man/man3/gnutls_ocsp_req_set_nonce.3 +42 -0
  1570. data/vendor/local/share/man/man3/gnutls_ocsp_resp_check_crt.3 +43 -0
  1571. data/vendor/local/share/man/man3/gnutls_ocsp_resp_deinit.3 +33 -0
  1572. data/vendor/local/share/man/man3/gnutls_ocsp_resp_export.3 +38 -0
  1573. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_certs.3 +51 -0
  1574. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_extension.3 +54 -0
  1575. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_nonce.3 +44 -0
  1576. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_produced.3 +36 -0
  1577. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_responder.3 +44 -0
  1578. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_response.3 +49 -0
  1579. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_signature.3 +38 -0
  1580. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_signature_algorithm.3 +38 -0
  1581. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_single.3 +64 -0
  1582. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_status.3 +37 -0
  1583. data/vendor/local/share/man/man3/gnutls_ocsp_resp_get_version.3 +37 -0
  1584. data/vendor/local/share/man/man3/gnutls_ocsp_resp_import.3 +40 -0
  1585. data/vendor/local/share/man/man3/gnutls_ocsp_resp_init.3 +36 -0
  1586. data/vendor/local/share/man/man3/gnutls_ocsp_resp_print.3 +46 -0
  1587. data/vendor/local/share/man/man3/gnutls_ocsp_resp_verify.3 +59 -0
  1588. data/vendor/local/share/man/man3/gnutls_ocsp_resp_verify_direct.3 +53 -0
  1589. data/vendor/local/share/man/man3/gnutls_ocsp_status_request_enable_client.3 +47 -0
  1590. data/vendor/local/share/man/man3/gnutls_ocsp_status_request_get.3 +43 -0
  1591. data/vendor/local/share/man/man3/gnutls_ocsp_status_request_is_checked.3 +42 -0
  1592. data/vendor/local/share/man/man3/gnutls_openpgp_crt_check_hostname.3 +39 -0
  1593. data/vendor/local/share/man/man3/gnutls_openpgp_crt_deinit.3 +33 -0
  1594. data/vendor/local/share/man/man3/gnutls_openpgp_crt_export.3 +44 -0
  1595. data/vendor/local/share/man/man3/gnutls_openpgp_crt_export2.3 +42 -0
  1596. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_auth_subkey.3 +42 -0
  1597. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_creation_time.3 +35 -0
  1598. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_expiration_time.3 +36 -0
  1599. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_fingerprint.3 +40 -0
  1600. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_key_id.3 +39 -0
  1601. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_key_usage.3 +39 -0
  1602. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_name.3 +45 -0
  1603. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_pk_algorithm.3 +43 -0
  1604. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_pk_dsa_raw.3 +47 -0
  1605. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_pk_rsa_raw.3 +43 -0
  1606. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_preferred_key_id.3 +38 -0
  1607. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_revoked_status.3 +38 -0
  1608. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_count.3 +38 -0
  1609. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_creation_time.3 +39 -0
  1610. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_expiration_time.3 +40 -0
  1611. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_fingerprint.3 +44 -0
  1612. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_id.3 +39 -0
  1613. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_idx.3 +39 -0
  1614. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_pk_algorithm.3 +47 -0
  1615. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.3 +49 -0
  1616. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.3 +45 -0
  1617. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_revoked_status.3 +40 -0
  1618. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_subkey_usage.3 +45 -0
  1619. data/vendor/local/share/man/man3/gnutls_openpgp_crt_get_version.3 +35 -0
  1620. data/vendor/local/share/man/man3/gnutls_openpgp_crt_import.3 +41 -0
  1621. data/vendor/local/share/man/man3/gnutls_openpgp_crt_init.3 +35 -0
  1622. data/vendor/local/share/man/man3/gnutls_openpgp_crt_print.3 +44 -0
  1623. data/vendor/local/share/man/man3/gnutls_openpgp_crt_set_preferred_key_id.3 +42 -0
  1624. data/vendor/local/share/man/man3/gnutls_openpgp_crt_verify_ring.3 +50 -0
  1625. data/vendor/local/share/man/man3/gnutls_openpgp_crt_verify_self.3 +41 -0
  1626. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_check_id.3 +40 -0
  1627. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_deinit.3 +33 -0
  1628. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_get_crt.3 +42 -0
  1629. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_get_crt_count.3 +36 -0
  1630. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_import.3 +41 -0
  1631. data/vendor/local/share/man/man3/gnutls_openpgp_keyring_init.3 +35 -0
  1632. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_deinit.3 +33 -0
  1633. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export.3 +50 -0
  1634. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export2.3 +46 -0
  1635. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_dsa_raw.3 +49 -0
  1636. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_rsa_raw.3 +51 -0
  1637. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_subkey_dsa_raw.3 +51 -0
  1638. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_export_subkey_rsa_raw.3 +53 -0
  1639. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_fingerprint.3 +42 -0
  1640. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_key_id.3 +39 -0
  1641. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_pk_algorithm.3 +45 -0
  1642. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_preferred_key_id.3 +38 -0
  1643. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_revoked_status.3 +38 -0
  1644. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_count.3 +38 -0
  1645. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_creation_time.3 +39 -0
  1646. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_expiration_time.3 +40 -0
  1647. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_fingerprint.3 +44 -0
  1648. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_id.3 +41 -0
  1649. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_idx.3 +39 -0
  1650. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_pk_algorithm.3 +47 -0
  1651. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_get_subkey_revoked_status.3 +40 -0
  1652. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_import.3 +45 -0
  1653. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_init.3 +35 -0
  1654. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_sec_param.3 +39 -0
  1655. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_set_preferred_key_id.3 +42 -0
  1656. data/vendor/local/share/man/man3/gnutls_openpgp_privkey_sign_hash.3 +44 -0
  1657. data/vendor/local/share/man/man3/gnutls_openpgp_send_cert.3 +38 -0
  1658. data/vendor/local/share/man/man3/gnutls_openpgp_set_recv_key_function.3 +39 -0
  1659. data/vendor/local/share/man/man3/gnutls_pcert_deinit.3 +35 -0
  1660. data/vendor/local/share/man/man3/gnutls_pcert_import_openpgp.3 +44 -0
  1661. data/vendor/local/share/man/man3/gnutls_pcert_import_openpgp_raw.3 +48 -0
  1662. data/vendor/local/share/man/man3/gnutls_pcert_import_x509.3 +44 -0
  1663. data/vendor/local/share/man/man3/gnutls_pcert_import_x509_raw.3 +46 -0
  1664. data/vendor/local/share/man/man3/gnutls_pcert_list_import_x509_raw.3 +50 -0
  1665. data/vendor/local/share/man/man3/gnutls_pem_base64_decode.3 +46 -0
  1666. data/vendor/local/share/man/man3/gnutls_pem_base64_decode_alloc.3 +46 -0
  1667. data/vendor/local/share/man/man3/gnutls_pem_base64_encode.3 +47 -0
  1668. data/vendor/local/share/man/man3/gnutls_pem_base64_encode_alloc.3 +45 -0
  1669. data/vendor/local/share/man/man3/gnutls_perror.3 +34 -0
  1670. data/vendor/local/share/man/man3/gnutls_pk_algorithm_get_name.3 +36 -0
  1671. data/vendor/local/share/man/man3/gnutls_pk_bits_to_sec_param.3 +41 -0
  1672. data/vendor/local/share/man/man3/gnutls_pk_get_id.3 +40 -0
  1673. data/vendor/local/share/man/man3/gnutls_pk_get_name.3 +38 -0
  1674. data/vendor/local/share/man/man3/gnutls_pk_list.3 +40 -0
  1675. data/vendor/local/share/man/man3/gnutls_pk_to_sign.3 +38 -0
  1676. data/vendor/local/share/man/man3/gnutls_pkcs11_add_provider.3 +42 -0
  1677. data/vendor/local/share/man/man3/gnutls_pkcs11_copy_secret_key.3 +47 -0
  1678. data/vendor/local/share/man/man3/gnutls_pkcs11_copy_x509_crt.3 +45 -0
  1679. data/vendor/local/share/man/man3/gnutls_pkcs11_copy_x509_privkey.3 +48 -0
  1680. data/vendor/local/share/man/man3/gnutls_pkcs11_deinit.3 +35 -0
  1681. data/vendor/local/share/man/man3/gnutls_pkcs11_delete_url.3 +41 -0
  1682. data/vendor/local/share/man/man3/gnutls_pkcs11_get_pin_function.3 +38 -0
  1683. data/vendor/local/share/man/man3/gnutls_pkcs11_get_raw_issuer.3 +49 -0
  1684. data/vendor/local/share/man/man3/gnutls_pkcs11_init.3 +48 -0
  1685. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_deinit.3 +35 -0
  1686. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export.3 +49 -0
  1687. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export2.3 +44 -0
  1688. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export3.3 +46 -0
  1689. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_export_url.3 +42 -0
  1690. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_get_info.3 +46 -0
  1691. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_get_type.3 +38 -0
  1692. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_import_url.3 +45 -0
  1693. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_init.3 +38 -0
  1694. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_list_import_url.3 +47 -0
  1695. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_list_import_url2.3 +48 -0
  1696. data/vendor/local/share/man/man3/gnutls_pkcs11_obj_set_pin_function.3 +41 -0
  1697. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_deinit.3 +33 -0
  1698. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_export_url.3 +40 -0
  1699. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_generate.3 +48 -0
  1700. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_generate2.3 +58 -0
  1701. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_get_info.3 +44 -0
  1702. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_get_pk_algorithm.3 +39 -0
  1703. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_import_url.3 +43 -0
  1704. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_init.3 +36 -0
  1705. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_set_pin_function.3 +41 -0
  1706. data/vendor/local/share/man/man3/gnutls_pkcs11_privkey_status.3 +38 -0
  1707. data/vendor/local/share/man/man3/gnutls_pkcs11_reinit.3 +40 -0
  1708. data/vendor/local/share/man/man3/gnutls_pkcs11_set_pin_function.3 +39 -0
  1709. data/vendor/local/share/man/man3/gnutls_pkcs11_set_token_function.3 +38 -0
  1710. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_flags.3 +41 -0
  1711. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_info.3 +45 -0
  1712. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_mechanism.3 +43 -0
  1713. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_random.3 +42 -0
  1714. data/vendor/local/share/man/man3/gnutls_pkcs11_token_get_url.3 +44 -0
  1715. data/vendor/local/share/man/man3/gnutls_pkcs11_token_init.3 +42 -0
  1716. data/vendor/local/share/man/man3/gnutls_pkcs11_token_set_pin.3 +44 -0
  1717. data/vendor/local/share/man/man3/gnutls_pkcs11_type_get_name.3 +40 -0
  1718. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_decrypt.3 +39 -0
  1719. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_deinit.3 +33 -0
  1720. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_encrypt.3 +40 -0
  1721. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_count.3 +36 -0
  1722. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_data.3 +42 -0
  1723. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_friendly_name.3 +42 -0
  1724. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_key_id.3 +42 -0
  1725. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_get_type.3 +37 -0
  1726. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_init.3 +38 -0
  1727. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_crl.3 +39 -0
  1728. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_crt.3 +39 -0
  1729. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_data.3 +41 -0
  1730. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_friendly_name.3 +43 -0
  1731. data/vendor/local/share/man/man3/gnutls_pkcs12_bag_set_key_id.3 +43 -0
  1732. data/vendor/local/share/man/man3/gnutls_pkcs12_deinit.3 +33 -0
  1733. data/vendor/local/share/man/man3/gnutls_pkcs12_export.3 +50 -0
  1734. data/vendor/local/share/man/man3/gnutls_pkcs12_export2.3 +47 -0
  1735. data/vendor/local/share/man/man3/gnutls_pkcs12_generate_mac.3 +38 -0
  1736. data/vendor/local/share/man/man3/gnutls_pkcs12_get_bag.3 +43 -0
  1737. data/vendor/local/share/man/man3/gnutls_pkcs12_import.3 +45 -0
  1738. data/vendor/local/share/man/man3/gnutls_pkcs12_init.3 +38 -0
  1739. data/vendor/local/share/man/man3/gnutls_pkcs12_set_bag.3 +38 -0
  1740. data/vendor/local/share/man/man3/gnutls_pkcs12_simple_parse.3 +84 -0
  1741. data/vendor/local/share/man/man3/gnutls_pkcs12_verify_mac.3 +38 -0
  1742. data/vendor/local/share/man/man3/gnutls_pkcs7_deinit.3 +33 -0
  1743. data/vendor/local/share/man/man3/gnutls_pkcs7_delete_crl.3 +39 -0
  1744. data/vendor/local/share/man/man3/gnutls_pkcs7_delete_crt.3 +39 -0
  1745. data/vendor/local/share/man/man3/gnutls_pkcs7_export.3 +50 -0
  1746. data/vendor/local/share/man/man3/gnutls_pkcs7_export2.3 +47 -0
  1747. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crl_count.3 +37 -0
  1748. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crl_raw.3 +45 -0
  1749. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crt_count.3 +37 -0
  1750. data/vendor/local/share/man/man3/gnutls_pkcs7_get_crt_raw.3 +49 -0
  1751. data/vendor/local/share/man/man3/gnutls_pkcs7_import.3 +44 -0
  1752. data/vendor/local/share/man/man3/gnutls_pkcs7_init.3 +38 -0
  1753. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crl.3 +39 -0
  1754. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crl_raw.3 +38 -0
  1755. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crt.3 +40 -0
  1756. data/vendor/local/share/man/man3/gnutls_pkcs7_set_crt_raw.3 +39 -0
  1757. data/vendor/local/share/man/man3/gnutls_prf.3 +64 -0
  1758. data/vendor/local/share/man/man3/gnutls_prf_raw.3 +62 -0
  1759. data/vendor/local/share/man/man3/gnutls_priority_certificate_type_list.3 +40 -0
  1760. data/vendor/local/share/man/man3/gnutls_priority_cipher_list.3 +40 -0
  1761. data/vendor/local/share/man/man3/gnutls_priority_compression_list.3 +40 -0
  1762. data/vendor/local/share/man/man3/gnutls_priority_deinit.3 +33 -0
  1763. data/vendor/local/share/man/man3/gnutls_priority_ecc_curve_list.3 +40 -0
  1764. data/vendor/local/share/man/man3/gnutls_priority_get_cipher_suite_index.3 +45 -0
  1765. data/vendor/local/share/man/man3/gnutls_priority_init.3 +102 -0
  1766. data/vendor/local/share/man/man3/gnutls_priority_kx_list.3 +40 -0
  1767. data/vendor/local/share/man/man3/gnutls_priority_mac_list.3 +40 -0
  1768. data/vendor/local/share/man/man3/gnutls_priority_protocol_list.3 +40 -0
  1769. data/vendor/local/share/man/man3/gnutls_priority_set.3 +38 -0
  1770. data/vendor/local/share/man/man3/gnutls_priority_set_direct.3 +45 -0
  1771. data/vendor/local/share/man/man3/gnutls_priority_sign_list.3 +40 -0
  1772. data/vendor/local/share/man/man3/gnutls_privkey_decrypt_data.3 +45 -0
  1773. data/vendor/local/share/man/man3/gnutls_privkey_deinit.3 +35 -0
  1774. data/vendor/local/share/man/man3/gnutls_privkey_get_pk_algorithm.3 +42 -0
  1775. data/vendor/local/share/man/man3/gnutls_privkey_get_type.3 +39 -0
  1776. data/vendor/local/share/man/man3/gnutls_privkey_import_ext.3 +52 -0
  1777. data/vendor/local/share/man/man3/gnutls_privkey_import_ext2.3 +58 -0
  1778. data/vendor/local/share/man/man3/gnutls_privkey_import_openpgp.3 +50 -0
  1779. data/vendor/local/share/man/man3/gnutls_privkey_import_openpgp_raw.3 +47 -0
  1780. data/vendor/local/share/man/man3/gnutls_privkey_import_pkcs11.3 +49 -0
  1781. data/vendor/local/share/man/man3/gnutls_privkey_import_pkcs11_url.3 +41 -0
  1782. data/vendor/local/share/man/man3/gnutls_privkey_import_tpm_raw.3 +51 -0
  1783. data/vendor/local/share/man/man3/gnutls_privkey_import_tpm_url.3 +55 -0
  1784. data/vendor/local/share/man/man3/gnutls_privkey_import_url.3 +44 -0
  1785. data/vendor/local/share/man/man3/gnutls_privkey_import_x509.3 +49 -0
  1786. data/vendor/local/share/man/man3/gnutls_privkey_import_x509_raw.3 +50 -0
  1787. data/vendor/local/share/man/man3/gnutls_privkey_init.3 +38 -0
  1788. data/vendor/local/share/man/man3/gnutls_privkey_set_pin_function.3 +44 -0
  1789. data/vendor/local/share/man/man3/gnutls_privkey_sign_data.3 +52 -0
  1790. data/vendor/local/share/man/man3/gnutls_privkey_sign_hash.3 +55 -0
  1791. data/vendor/local/share/man/man3/gnutls_privkey_sign_raw_data.3 +51 -0
  1792. data/vendor/local/share/man/man3/gnutls_privkey_status.3 +41 -0
  1793. data/vendor/local/share/man/man3/gnutls_protocol_get_id.3 +36 -0
  1794. data/vendor/local/share/man/man3/gnutls_protocol_get_name.3 +36 -0
  1795. data/vendor/local/share/man/man3/gnutls_protocol_get_version.3 +35 -0
  1796. data/vendor/local/share/man/man3/gnutls_protocol_list.3 +38 -0
  1797. data/vendor/local/share/man/man3/gnutls_protocol_set_priority.3 +39 -0
  1798. data/vendor/local/share/man/man3/gnutls_psk_allocate_client_credentials.3 +37 -0
  1799. data/vendor/local/share/man/man3/gnutls_psk_allocate_server_credentials.3 +37 -0
  1800. data/vendor/local/share/man/man3/gnutls_psk_client_get_hint.3 +39 -0
  1801. data/vendor/local/share/man/man3/gnutls_psk_free_client_credentials.3 +34 -0
  1802. data/vendor/local/share/man/man3/gnutls_psk_free_server_credentials.3 +34 -0
  1803. data/vendor/local/share/man/man3/gnutls_psk_server_get_username.3 +36 -0
  1804. data/vendor/local/share/man/man3/gnutls_psk_set_client_credentials.3 +48 -0
  1805. data/vendor/local/share/man/man3/gnutls_psk_set_client_credentials_function.3 +48 -0
  1806. data/vendor/local/share/man/man3/gnutls_psk_set_params_function.3 +37 -0
  1807. data/vendor/local/share/man/man3/gnutls_psk_set_server_credentials_file.3 +40 -0
  1808. data/vendor/local/share/man/man3/gnutls_psk_set_server_credentials_function.3 +48 -0
  1809. data/vendor/local/share/man/man3/gnutls_psk_set_server_credentials_hint.3 +43 -0
  1810. data/vendor/local/share/man/man3/gnutls_psk_set_server_dh_params.3 +37 -0
  1811. data/vendor/local/share/man/man3/gnutls_psk_set_server_params_function.3 +37 -0
  1812. data/vendor/local/share/man/man3/gnutls_pubkey_deinit.3 +35 -0
  1813. data/vendor/local/share/man/man3/gnutls_pubkey_encrypt_data.3 +45 -0
  1814. data/vendor/local/share/man/man3/gnutls_pubkey_export.3 +54 -0
  1815. data/vendor/local/share/man/man3/gnutls_pubkey_export2.3 +49 -0
  1816. data/vendor/local/share/man/man3/gnutls_pubkey_get_key_id.3 +52 -0
  1817. data/vendor/local/share/man/man3/gnutls_pubkey_get_key_usage.3 +40 -0
  1818. data/vendor/local/share/man/man3/gnutls_pubkey_get_openpgp_key_id.3 +56 -0
  1819. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_algorithm.3 +42 -0
  1820. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_dsa_raw.3 +47 -0
  1821. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_ecc_raw.3 +45 -0
  1822. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_ecc_x962.3 +43 -0
  1823. data/vendor/local/share/man/man3/gnutls_pubkey_get_pk_rsa_raw.3 +43 -0
  1824. data/vendor/local/share/man/man3/gnutls_pubkey_get_preferred_hash_algorithm.3 +47 -0
  1825. data/vendor/local/share/man/man3/gnutls_pubkey_get_verify_algorithm.3 +43 -0
  1826. data/vendor/local/share/man/man3/gnutls_pubkey_import.3 +46 -0
  1827. data/vendor/local/share/man/man3/gnutls_pubkey_import_dsa_raw.3 +48 -0
  1828. data/vendor/local/share/man/man3/gnutls_pubkey_import_ecc_raw.3 +45 -0
  1829. data/vendor/local/share/man/man3/gnutls_pubkey_import_ecc_x962.3 +43 -0
  1830. data/vendor/local/share/man/man3/gnutls_pubkey_import_openpgp.3 +45 -0
  1831. data/vendor/local/share/man/man3/gnutls_pubkey_import_openpgp_raw.3 +47 -0
  1832. data/vendor/local/share/man/man3/gnutls_pubkey_import_pkcs11.3 +43 -0
  1833. data/vendor/local/share/man/man3/gnutls_pubkey_import_pkcs11_url.3 +43 -0
  1834. data/vendor/local/share/man/man3/gnutls_pubkey_import_privkey.3 +45 -0
  1835. data/vendor/local/share/man/man3/gnutls_pubkey_import_rsa_raw.3 +43 -0
  1836. data/vendor/local/share/man/man3/gnutls_pubkey_import_tpm_raw.3 +50 -0
  1837. data/vendor/local/share/man/man3/gnutls_pubkey_import_tpm_url.3 +51 -0
  1838. data/vendor/local/share/man/man3/gnutls_pubkey_import_url.3 +43 -0
  1839. data/vendor/local/share/man/man3/gnutls_pubkey_import_x509.3 +43 -0
  1840. data/vendor/local/share/man/man3/gnutls_pubkey_import_x509_crq.3 +43 -0
  1841. data/vendor/local/share/man/man3/gnutls_pubkey_import_x509_raw.3 +45 -0
  1842. data/vendor/local/share/man/man3/gnutls_pubkey_init.3 +38 -0
  1843. data/vendor/local/share/man/man3/gnutls_pubkey_print.3 +48 -0
  1844. data/vendor/local/share/man/man3/gnutls_pubkey_set_key_usage.3 +42 -0
  1845. data/vendor/local/share/man/man3/gnutls_pubkey_set_pin_function.3 +44 -0
  1846. data/vendor/local/share/man/man3/gnutls_pubkey_verify_data.3 +48 -0
  1847. data/vendor/local/share/man/man3/gnutls_pubkey_verify_data2.3 +47 -0
  1848. data/vendor/local/share/man/man3/gnutls_pubkey_verify_hash.3 +48 -0
  1849. data/vendor/local/share/man/man3/gnutls_pubkey_verify_hash2.3 +47 -0
  1850. data/vendor/local/share/man/man3/gnutls_random_art.3 +47 -0
  1851. data/vendor/local/share/man/man3/gnutls_range_split.3 +47 -0
  1852. data/vendor/local/share/man/man3/gnutls_record_can_use_length_hiding.3 +42 -0
  1853. data/vendor/local/share/man/man3/gnutls_record_check_corked.3 +38 -0
  1854. data/vendor/local/share/man/man3/gnutls_record_check_pending.3 +38 -0
  1855. data/vendor/local/share/man/man3/gnutls_record_cork.3 +39 -0
  1856. data/vendor/local/share/man/man3/gnutls_record_disable_padding.3 +39 -0
  1857. data/vendor/local/share/man/man3/gnutls_record_get_direction.3 +44 -0
  1858. data/vendor/local/share/man/man3/gnutls_record_get_discarded.3 +38 -0
  1859. data/vendor/local/share/man/man3/gnutls_record_get_max_size.3 +36 -0
  1860. data/vendor/local/share/man/man3/gnutls_record_overhead_size.3 +36 -0
  1861. data/vendor/local/share/man/man3/gnutls_record_recv.3 +56 -0
  1862. data/vendor/local/share/man/man3/gnutls_record_recv_seq.3 +50 -0
  1863. data/vendor/local/share/man/man3/gnutls_record_send.3 +64 -0
  1864. data/vendor/local/share/man/man3/gnutls_record_send_range.3 +51 -0
  1865. data/vendor/local/share/man/man3/gnutls_record_set_max_empty_records.3 +41 -0
  1866. data/vendor/local/share/man/man3/gnutls_record_set_max_size.3 +48 -0
  1867. data/vendor/local/share/man/man3/gnutls_record_set_timeout.3 +43 -0
  1868. data/vendor/local/share/man/man3/gnutls_record_uncork.3 +49 -0
  1869. data/vendor/local/share/man/man3/gnutls_rehandshake.3 +56 -0
  1870. data/vendor/local/share/man/man3/gnutls_rnd.3 +42 -0
  1871. data/vendor/local/share/man/man3/gnutls_rnd_refresh.3 +38 -0
  1872. data/vendor/local/share/man/man3/gnutls_rsa_export_get_modulus_bits.3 +36 -0
  1873. data/vendor/local/share/man/man3/gnutls_rsa_export_get_pubkey.3 +42 -0
  1874. data/vendor/local/share/man/man3/gnutls_rsa_params_cpy.3 +38 -0
  1875. data/vendor/local/share/man/man3/gnutls_rsa_params_deinit.3 +33 -0
  1876. data/vendor/local/share/man/man3/gnutls_rsa_params_export_pkcs1.3 +46 -0
  1877. data/vendor/local/share/man/man3/gnutls_rsa_params_export_raw.3 +51 -0
  1878. data/vendor/local/share/man/man3/gnutls_rsa_params_generate2.3 +44 -0
  1879. data/vendor/local/share/man/man3/gnutls_rsa_params_import_pkcs1.3 +43 -0
  1880. data/vendor/local/share/man/man3/gnutls_rsa_params_import_raw.3 +49 -0
  1881. data/vendor/local/share/man/man3/gnutls_rsa_params_init.3 +35 -0
  1882. data/vendor/local/share/man/man3/gnutls_safe_renegotiation_status.3 +39 -0
  1883. data/vendor/local/share/man/man3/gnutls_sec_param_get_name.3 +38 -0
  1884. data/vendor/local/share/man/man3/gnutls_sec_param_to_pk_bits.3 +43 -0
  1885. data/vendor/local/share/man/man3/gnutls_server_name_get.3 +59 -0
  1886. data/vendor/local/share/man/man3/gnutls_server_name_set.3 +50 -0
  1887. data/vendor/local/share/man/man3/gnutls_session_channel_binding.3 +45 -0
  1888. data/vendor/local/share/man/man3/gnutls_session_enable_compatibility_mode.3 +42 -0
  1889. data/vendor/local/share/man/man3/gnutls_session_force_valid.3 +37 -0
  1890. data/vendor/local/share/man/man3/gnutls_session_get_data.3 +43 -0
  1891. data/vendor/local/share/man/man3/gnutls_session_get_data2.3 +42 -0
  1892. data/vendor/local/share/man/man3/gnutls_session_get_desc.3 +38 -0
  1893. data/vendor/local/share/man/man3/gnutls_session_get_id.3 +47 -0
  1894. data/vendor/local/share/man/man3/gnutls_session_get_id2.3 +41 -0
  1895. data/vendor/local/share/man/man3/gnutls_session_get_ptr.3 +37 -0
  1896. data/vendor/local/share/man/man3/gnutls_session_get_random.3 +44 -0
  1897. data/vendor/local/share/man/man3/gnutls_session_is_resumed.3 +36 -0
  1898. data/vendor/local/share/man/man3/gnutls_session_resumption_requested.3 +36 -0
  1899. data/vendor/local/share/man/man3/gnutls_session_set_data.3 +47 -0
  1900. data/vendor/local/share/man/man3/gnutls_session_set_id.3 +42 -0
  1901. data/vendor/local/share/man/man3/gnutls_session_set_premaster.3 +55 -0
  1902. data/vendor/local/share/man/man3/gnutls_session_set_ptr.3 +37 -0
  1903. data/vendor/local/share/man/man3/gnutls_session_ticket_enable_client.3 +39 -0
  1904. data/vendor/local/share/man/man3/gnutls_session_ticket_enable_server.3 +42 -0
  1905. data/vendor/local/share/man/man3/gnutls_session_ticket_key_generate.3 +40 -0
  1906. data/vendor/local/share/man/man3/gnutls_set_default_export_priority.3 +46 -0
  1907. data/vendor/local/share/man/man3/gnutls_set_default_priority.3 +45 -0
  1908. data/vendor/local/share/man/man3/gnutls_sign_algorithm_get.3 +38 -0
  1909. data/vendor/local/share/man/man3/gnutls_sign_algorithm_get_client.3 +38 -0
  1910. data/vendor/local/share/man/man3/gnutls_sign_algorithm_get_requested.3 +50 -0
  1911. data/vendor/local/share/man/man3/gnutls_sign_callback_get.3 +40 -0
  1912. data/vendor/local/share/man/man3/gnutls_sign_callback_set.3 +50 -0
  1913. data/vendor/local/share/man/man3/gnutls_sign_get_hash_algorithm.3 +38 -0
  1914. data/vendor/local/share/man/man3/gnutls_sign_get_id.3 +36 -0
  1915. data/vendor/local/share/man/man3/gnutls_sign_get_name.3 +36 -0
  1916. data/vendor/local/share/man/man3/gnutls_sign_get_pk_algorithm.3 +38 -0
  1917. data/vendor/local/share/man/man3/gnutls_sign_is_secure.3 +33 -0
  1918. data/vendor/local/share/man/man3/gnutls_sign_list.3 +36 -0
  1919. data/vendor/local/share/man/man3/gnutls_srp_allocate_client_credentials.3 +37 -0
  1920. data/vendor/local/share/man/man3/gnutls_srp_allocate_server_credentials.3 +37 -0
  1921. data/vendor/local/share/man/man3/gnutls_srp_base64_decode.3 +46 -0
  1922. data/vendor/local/share/man/man3/gnutls_srp_base64_decode_alloc.3 +44 -0
  1923. data/vendor/local/share/man/man3/gnutls_srp_base64_encode.3 +46 -0
  1924. data/vendor/local/share/man/man3/gnutls_srp_base64_encode_alloc.3 +45 -0
  1925. data/vendor/local/share/man/man3/gnutls_srp_free_client_credentials.3 +34 -0
  1926. data/vendor/local/share/man/man3/gnutls_srp_free_server_credentials.3 +34 -0
  1927. data/vendor/local/share/man/man3/gnutls_srp_server_get_username.3 +37 -0
  1928. data/vendor/local/share/man/man3/gnutls_srp_set_client_credentials.3 +44 -0
  1929. data/vendor/local/share/man/man3/gnutls_srp_set_client_credentials_function.3 +53 -0
  1930. data/vendor/local/share/man/man3/gnutls_srp_set_prime_bits.3 +45 -0
  1931. data/vendor/local/share/man/man3/gnutls_srp_set_server_credentials_file.3 +43 -0
  1932. data/vendor/local/share/man/man3/gnutls_srp_set_server_credentials_function.3 +56 -0
  1933. data/vendor/local/share/man/man3/gnutls_srp_verifier.3 +51 -0
  1934. data/vendor/local/share/man/man3/gnutls_srtp_get_keys.3 +54 -0
  1935. data/vendor/local/share/man/man3/gnutls_srtp_get_mki.3 +42 -0
  1936. data/vendor/local/share/man/man3/gnutls_srtp_get_profile_id.3 +40 -0
  1937. data/vendor/local/share/man/man3/gnutls_srtp_get_profile_name.3 +39 -0
  1938. data/vendor/local/share/man/man3/gnutls_srtp_get_selected_profile.3 +40 -0
  1939. data/vendor/local/share/man/man3/gnutls_srtp_set_mki.3 +41 -0
  1940. data/vendor/local/share/man/man3/gnutls_srtp_set_profile.3 +41 -0
  1941. data/vendor/local/share/man/man3/gnutls_srtp_set_profile_direct.3 +44 -0
  1942. data/vendor/local/share/man/man3/gnutls_store_commitment.3 +60 -0
  1943. data/vendor/local/share/man/man3/gnutls_store_pubkey.3 +58 -0
  1944. data/vendor/local/share/man/man3/gnutls_strerror.3 +39 -0
  1945. data/vendor/local/share/man/man3/gnutls_strerror_name.3 +40 -0
  1946. data/vendor/local/share/man/man3/gnutls_supplemental_get_name.3 +37 -0
  1947. data/vendor/local/share/man/man3/gnutls_tdb_deinit.3 +33 -0
  1948. data/vendor/local/share/man/man3/gnutls_tdb_init.3 +36 -0
  1949. data/vendor/local/share/man/man3/gnutls_tdb_set_store_commitment_func.3 +40 -0
  1950. data/vendor/local/share/man/man3/gnutls_tdb_set_store_func.3 +40 -0
  1951. data/vendor/local/share/man/man3/gnutls_tdb_set_verify_func.3 +39 -0
  1952. data/vendor/local/share/man/man3/gnutls_tpm_get_registered.3 +39 -0
  1953. data/vendor/local/share/man/man3/gnutls_tpm_key_list_deinit.3 +35 -0
  1954. data/vendor/local/share/man/man3/gnutls_tpm_key_list_get_url.3 +47 -0
  1955. data/vendor/local/share/man/man3/gnutls_tpm_privkey_delete.3 +41 -0
  1956. data/vendor/local/share/man/man3/gnutls_tpm_privkey_generate.3 +64 -0
  1957. data/vendor/local/share/man/man3/gnutls_transport_get_int.3 +39 -0
  1958. data/vendor/local/share/man/man3/gnutls_transport_get_int2.3 +41 -0
  1959. data/vendor/local/share/man/man3/gnutls_transport_get_ptr.3 +37 -0
  1960. data/vendor/local/share/man/man3/gnutls_transport_get_ptr2.3 +39 -0
  1961. data/vendor/local/share/man/man3/gnutls_transport_set_errno.3 +43 -0
  1962. data/vendor/local/share/man/man3/gnutls_transport_set_errno_function.3 +42 -0
  1963. data/vendor/local/share/man/man3/gnutls_transport_set_int.3 +38 -0
  1964. data/vendor/local/share/man/man3/gnutls_transport_set_int2.3 +42 -0
  1965. data/vendor/local/share/man/man3/gnutls_transport_set_ptr.3 +37 -0
  1966. data/vendor/local/share/man/man3/gnutls_transport_set_ptr2.3 +40 -0
  1967. data/vendor/local/share/man/man3/gnutls_transport_set_pull_function.3 +42 -0
  1968. data/vendor/local/share/man/man3/gnutls_transport_set_pull_timeout_function.3 +48 -0
  1969. data/vendor/local/share/man/man3/gnutls_transport_set_push_function.3 +44 -0
  1970. data/vendor/local/share/man/man3/gnutls_transport_set_vec_push_function.3 +43 -0
  1971. data/vendor/local/share/man/man3/gnutls_url_is_supported.3 +39 -0
  1972. data/vendor/local/share/man/man3/gnutls_verify_stored_pubkey.3 +67 -0
  1973. data/vendor/local/share/man/man3/gnutls_x509_crl_check_issuer.3 +39 -0
  1974. data/vendor/local/share/man/man3/gnutls_x509_crl_deinit.3 +33 -0
  1975. data/vendor/local/share/man/man3/gnutls_x509_crl_export.3 +49 -0
  1976. data/vendor/local/share/man/man3/gnutls_x509_crl_export2.3 +47 -0
  1977. data/vendor/local/share/man/man3/gnutls_x509_crl_get_authority_key_gn_serial.3 +57 -0
  1978. data/vendor/local/share/man/man3/gnutls_x509_crl_get_authority_key_id.3 +51 -0
  1979. data/vendor/local/share/man/man3/gnutls_x509_crl_get_crt_count.3 +36 -0
  1980. data/vendor/local/share/man/man3/gnutls_x509_crl_get_crt_serial.3 +45 -0
  1981. data/vendor/local/share/man/man3/gnutls_x509_crl_get_dn_oid.3 +46 -0
  1982. data/vendor/local/share/man/man3/gnutls_x509_crl_get_extension_data.3 +53 -0
  1983. data/vendor/local/share/man/man3/gnutls_x509_crl_get_extension_info.3 +56 -0
  1984. data/vendor/local/share/man/man3/gnutls_x509_crl_get_extension_oid.3 +48 -0
  1985. data/vendor/local/share/man/man3/gnutls_x509_crl_get_issuer_dn.3 +46 -0
  1986. data/vendor/local/share/man/man3/gnutls_x509_crl_get_issuer_dn2.3 +43 -0
  1987. data/vendor/local/share/man/man3/gnutls_x509_crl_get_issuer_dn_by_oid.3 +58 -0
  1988. data/vendor/local/share/man/man3/gnutls_x509_crl_get_next_update.3 +37 -0
  1989. data/vendor/local/share/man/man3/gnutls_x509_crl_get_number.3 +46 -0
  1990. data/vendor/local/share/man/man3/gnutls_x509_crl_get_raw_issuer_dn.3 +40 -0
  1991. data/vendor/local/share/man/man3/gnutls_x509_crl_get_signature.3 +40 -0
  1992. data/vendor/local/share/man/man3/gnutls_x509_crl_get_signature_algorithm.3 +37 -0
  1993. data/vendor/local/share/man/man3/gnutls_x509_crl_get_this_update.3 +35 -0
  1994. data/vendor/local/share/man/man3/gnutls_x509_crl_get_version.3 +35 -0
  1995. data/vendor/local/share/man/man3/gnutls_x509_crl_import.3 +43 -0
  1996. data/vendor/local/share/man/man3/gnutls_x509_crl_init.3 +40 -0
  1997. data/vendor/local/share/man/man3/gnutls_x509_crl_list_import.3 +49 -0
  1998. data/vendor/local/share/man/man3/gnutls_x509_crl_list_import2.3 +50 -0
  1999. data/vendor/local/share/man/man3/gnutls_x509_crl_print.3 +43 -0
  2000. data/vendor/local/share/man/man3/gnutls_x509_crl_privkey_sign.3 +50 -0
  2001. data/vendor/local/share/man/man3/gnutls_x509_crl_set_authority_key_id.3 +45 -0
  2002. data/vendor/local/share/man/man3/gnutls_x509_crl_set_crt.3 +40 -0
  2003. data/vendor/local/share/man/man3/gnutls_x509_crl_set_crt_serial.3 +42 -0
  2004. data/vendor/local/share/man/man3/gnutls_x509_crl_set_next_update.3 +38 -0
  2005. data/vendor/local/share/man/man3/gnutls_x509_crl_set_number.3 +44 -0
  2006. data/vendor/local/share/man/man3/gnutls_x509_crl_set_this_update.3 +38 -0
  2007. data/vendor/local/share/man/man3/gnutls_x509_crl_set_version.3 +40 -0
  2008. data/vendor/local/share/man/man3/gnutls_x509_crl_sign.3 +43 -0
  2009. data/vendor/local/share/man/man3/gnutls_x509_crl_sign2.3 +48 -0
  2010. data/vendor/local/share/man/man3/gnutls_x509_crl_verify.3 +51 -0
  2011. data/vendor/local/share/man/man3/gnutls_x509_crq_deinit.3 +34 -0
  2012. data/vendor/local/share/man/man3/gnutls_x509_crq_export.3 +51 -0
  2013. data/vendor/local/share/man/man3/gnutls_x509_crq_export2.3 +48 -0
  2014. data/vendor/local/share/man/man3/gnutls_x509_crq_get_attribute_by_oid.3 +50 -0
  2015. data/vendor/local/share/man/man3/gnutls_x509_crq_get_attribute_data.3 +53 -0
  2016. data/vendor/local/share/man/man3/gnutls_x509_crq_get_attribute_info.3 +54 -0
  2017. data/vendor/local/share/man/man3/gnutls_x509_crq_get_basic_constraints.3 +52 -0
  2018. data/vendor/local/share/man/man3/gnutls_x509_crq_get_challenge_password.3 +42 -0
  2019. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn.3 +45 -0
  2020. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn2.3 +43 -0
  2021. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn_by_oid.3 +57 -0
  2022. data/vendor/local/share/man/man3/gnutls_x509_crq_get_dn_oid.3 +44 -0
  2023. data/vendor/local/share/man/man3/gnutls_x509_crq_get_extension_by_oid.3 +53 -0
  2024. data/vendor/local/share/man/man3/gnutls_x509_crq_get_extension_data.3 +53 -0
  2025. data/vendor/local/share/man/man3/gnutls_x509_crq_get_extension_info.3 +56 -0
  2026. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_id.3 +52 -0
  2027. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_purpose_oid.3 +50 -0
  2028. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_rsa_raw.3 +44 -0
  2029. data/vendor/local/share/man/man3/gnutls_x509_crq_get_key_usage.3 +50 -0
  2030. data/vendor/local/share/man/man3/gnutls_x509_crq_get_pk_algorithm.3 +43 -0
  2031. data/vendor/local/share/man/man3/gnutls_x509_crq_get_private_key_usage_period.3 +43 -0
  2032. data/vendor/local/share/man/man3/gnutls_x509_crq_get_subject_alt_name.3 +60 -0
  2033. data/vendor/local/share/man/man3/gnutls_x509_crq_get_subject_alt_othername_oid.3 +58 -0
  2034. data/vendor/local/share/man/man3/gnutls_x509_crq_get_version.3 +37 -0
  2035. data/vendor/local/share/man/man3/gnutls_x509_crq_import.3 +45 -0
  2036. data/vendor/local/share/man/man3/gnutls_x509_crq_init.3 +37 -0
  2037. data/vendor/local/share/man/man3/gnutls_x509_crq_print.3 +45 -0
  2038. data/vendor/local/share/man/man3/gnutls_x509_crq_privkey_sign.3 +52 -0
  2039. data/vendor/local/share/man/man3/gnutls_x509_crq_set_attribute_by_oid.3 +47 -0
  2040. data/vendor/local/share/man/man3/gnutls_x509_crq_set_basic_constraints.3 +44 -0
  2041. data/vendor/local/share/man/man3/gnutls_x509_crq_set_challenge_password.3 +39 -0
  2042. data/vendor/local/share/man/man3/gnutls_x509_crq_set_dn.3 +41 -0
  2043. data/vendor/local/share/man/man3/gnutls_x509_crq_set_dn_by_oid.3 +52 -0
  2044. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key.3 +39 -0
  2045. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key_purpose_oid.3 +46 -0
  2046. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key_rsa_raw.3 +43 -0
  2047. data/vendor/local/share/man/man3/gnutls_x509_crq_set_key_usage.3 +40 -0
  2048. data/vendor/local/share/man/man3/gnutls_x509_crq_set_private_key_usage_period.3 +40 -0
  2049. data/vendor/local/share/man/man3/gnutls_x509_crq_set_pubkey.3 +41 -0
  2050. data/vendor/local/share/man/man3/gnutls_x509_crq_set_subject_alt_name.3 +48 -0
  2051. data/vendor/local/share/man/man3/gnutls_x509_crq_set_version.3 +39 -0
  2052. data/vendor/local/share/man/man3/gnutls_x509_crq_sign.3 +41 -0
  2053. data/vendor/local/share/man/man3/gnutls_x509_crq_sign2.3 +50 -0
  2054. data/vendor/local/share/man/man3/gnutls_x509_crq_verify.3 +41 -0
  2055. data/vendor/local/share/man/man3/gnutls_x509_crt_check_hostname.3 +52 -0
  2056. data/vendor/local/share/man/man3/gnutls_x509_crt_check_issuer.3 +40 -0
  2057. data/vendor/local/share/man/man3/gnutls_x509_crt_check_revocation.3 +41 -0
  2058. data/vendor/local/share/man/man3/gnutls_x509_crt_cpy_crl_dist_points.3 +40 -0
  2059. data/vendor/local/share/man/man3/gnutls_x509_crt_deinit.3 +33 -0
  2060. data/vendor/local/share/man/man3/gnutls_x509_crt_export.3 +50 -0
  2061. data/vendor/local/share/man/man3/gnutls_x509_crt_export2.3 +46 -0
  2062. data/vendor/local/share/man/man3/gnutls_x509_crt_get_activation_time.3 +36 -0
  2063. data/vendor/local/share/man/man3/gnutls_x509_crt_get_authority_info_access.3 +100 -0
  2064. data/vendor/local/share/man/man3/gnutls_x509_crt_get_authority_key_gn_serial.3 +58 -0
  2065. data/vendor/local/share/man/man3/gnutls_x509_crt_get_authority_key_id.3 +48 -0
  2066. data/vendor/local/share/man/man3/gnutls_x509_crt_get_basic_constraints.3 +50 -0
  2067. data/vendor/local/share/man/man3/gnutls_x509_crt_get_ca_status.3 +45 -0
  2068. data/vendor/local/share/man/man3/gnutls_x509_crt_get_crl_dist_points.3 +53 -0
  2069. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn.3 +46 -0
  2070. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn2.3 +43 -0
  2071. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn_by_oid.3 +60 -0
  2072. data/vendor/local/share/man/man3/gnutls_x509_crt_get_dn_oid.3 +48 -0
  2073. data/vendor/local/share/man/man3/gnutls_x509_crt_get_expiration_time.3 +39 -0
  2074. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_by_oid.3 +50 -0
  2075. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_data.3 +51 -0
  2076. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_info.3 +55 -0
  2077. data/vendor/local/share/man/man3/gnutls_x509_crt_get_extension_oid.3 +48 -0
  2078. data/vendor/local/share/man/man3/gnutls_x509_crt_get_fingerprint.3 +46 -0
  2079. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer.3 +42 -0
  2080. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_alt_name.3 +64 -0
  2081. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_alt_name2.3 +58 -0
  2082. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_alt_othername_oid.3 +61 -0
  2083. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn.3 +46 -0
  2084. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn2.3 +43 -0
  2085. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn_by_oid.3 +60 -0
  2086. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_dn_oid.3 +48 -0
  2087. data/vendor/local/share/man/man3/gnutls_x509_crt_get_issuer_unique_id.3 +47 -0
  2088. data/vendor/local/share/man/man3/gnutls_x509_crt_get_key_id.3 +50 -0
  2089. data/vendor/local/share/man/man3/gnutls_x509_crt_get_key_purpose_oid.3 +51 -0
  2090. data/vendor/local/share/man/man3/gnutls_x509_crt_get_key_usage.3 +48 -0
  2091. data/vendor/local/share/man/man3/gnutls_x509_crt_get_pk_algorithm.3 +44 -0
  2092. data/vendor/local/share/man/man3/gnutls_x509_crt_get_pk_dsa_raw.3 +45 -0
  2093. data/vendor/local/share/man/man3/gnutls_x509_crt_get_pk_rsa_raw.3 +41 -0
  2094. data/vendor/local/share/man/man3/gnutls_x509_crt_get_policy.3 +48 -0
  2095. data/vendor/local/share/man/man3/gnutls_x509_crt_get_preferred_hash_algorithm.3 +46 -0
  2096. data/vendor/local/share/man/man3/gnutls_x509_crt_get_private_key_usage_period.3 +44 -0
  2097. data/vendor/local/share/man/man3/gnutls_x509_crt_get_proxy.3 +49 -0
  2098. data/vendor/local/share/man/man3/gnutls_x509_crt_get_raw_dn.3 +39 -0
  2099. data/vendor/local/share/man/man3/gnutls_x509_crt_get_raw_issuer_dn.3 +39 -0
  2100. data/vendor/local/share/man/man3/gnutls_x509_crt_get_serial.3 +43 -0
  2101. data/vendor/local/share/man/man3/gnutls_x509_crt_get_signature.3 +40 -0
  2102. data/vendor/local/share/man/man3/gnutls_x509_crt_get_signature_algorithm.3 +38 -0
  2103. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject.3 +42 -0
  2104. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_alt_name.3 +61 -0
  2105. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_alt_name2.3 +56 -0
  2106. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_alt_othername_oid.3 +59 -0
  2107. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_key_id.3 +44 -0
  2108. data/vendor/local/share/man/man3/gnutls_x509_crt_get_subject_unique_id.3 +45 -0
  2109. data/vendor/local/share/man/man3/gnutls_x509_crt_get_verify_algorithm.3 +45 -0
  2110. data/vendor/local/share/man/man3/gnutls_x509_crt_get_version.3 +35 -0
  2111. data/vendor/local/share/man/man3/gnutls_x509_crt_import.3 +45 -0
  2112. data/vendor/local/share/man/man3/gnutls_x509_crt_import_pkcs11.3 +41 -0
  2113. data/vendor/local/share/man/man3/gnutls_x509_crt_import_pkcs11_url.3 +44 -0
  2114. data/vendor/local/share/man/man3/gnutls_x509_crt_init.3 +36 -0
  2115. data/vendor/local/share/man/man3/gnutls_x509_crt_list_import.3 +54 -0
  2116. data/vendor/local/share/man/man3/gnutls_x509_crt_list_import2.3 +53 -0
  2117. data/vendor/local/share/man/man3/gnutls_x509_crt_list_import_pkcs11.3 +45 -0
  2118. data/vendor/local/share/man/man3/gnutls_x509_crt_list_verify.3 +62 -0
  2119. data/vendor/local/share/man/man3/gnutls_x509_crt_print.3 +48 -0
  2120. data/vendor/local/share/man/man3/gnutls_x509_crt_privkey_sign.3 +48 -0
  2121. data/vendor/local/share/man/man3/gnutls_x509_crt_set_activation_time.3 +39 -0
  2122. data/vendor/local/share/man/man3/gnutls_x509_crt_set_authority_info_access.3 +50 -0
  2123. data/vendor/local/share/man/man3/gnutls_x509_crt_set_authority_key_id.3 +41 -0
  2124. data/vendor/local/share/man/man3/gnutls_x509_crt_set_basic_constraints.3 +42 -0
  2125. data/vendor/local/share/man/man3/gnutls_x509_crt_set_ca_status.3 +40 -0
  2126. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crl_dist_points.3 +42 -0
  2127. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crl_dist_points2.3 +46 -0
  2128. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crq.3 +40 -0
  2129. data/vendor/local/share/man/man3/gnutls_x509_crt_set_crq_extensions.3 +41 -0
  2130. data/vendor/local/share/man/man3/gnutls_x509_crt_set_dn.3 +41 -0
  2131. data/vendor/local/share/man/man3/gnutls_x509_crt_set_dn_by_oid.3 +52 -0
  2132. data/vendor/local/share/man/man3/gnutls_x509_crt_set_expiration_time.3 +40 -0
  2133. data/vendor/local/share/man/man3/gnutls_x509_crt_set_extension_by_oid.3 +46 -0
  2134. data/vendor/local/share/man/man3/gnutls_x509_crt_set_issuer_dn.3 +41 -0
  2135. data/vendor/local/share/man/man3/gnutls_x509_crt_set_issuer_dn_by_oid.3 +56 -0
  2136. data/vendor/local/share/man/man3/gnutls_x509_crt_set_key.3 +40 -0
  2137. data/vendor/local/share/man/man3/gnutls_x509_crt_set_key_purpose_oid.3 +44 -0
  2138. data/vendor/local/share/man/man3/gnutls_x509_crt_set_key_usage.3 +38 -0
  2139. data/vendor/local/share/man/man3/gnutls_x509_crt_set_pin_function.3 +44 -0
  2140. data/vendor/local/share/man/man3/gnutls_x509_crt_set_policy.3 +47 -0
  2141. data/vendor/local/share/man/man3/gnutls_x509_crt_set_private_key_usage_period.3 +40 -0
  2142. data/vendor/local/share/man/man3/gnutls_x509_crt_set_proxy.3 +46 -0
  2143. data/vendor/local/share/man/man3/gnutls_x509_crt_set_proxy_dn.3 +47 -0
  2144. data/vendor/local/share/man/man3/gnutls_x509_crt_set_pubkey.3 +41 -0
  2145. data/vendor/local/share/man/man3/gnutls_x509_crt_set_serial.3 +45 -0
  2146. data/vendor/local/share/man/man3/gnutls_x509_crt_set_subject_alt_name.3 +47 -0
  2147. data/vendor/local/share/man/man3/gnutls_x509_crt_set_subject_alternative_name.3 +45 -0
  2148. data/vendor/local/share/man/man3/gnutls_x509_crt_set_subject_key_id.3 +41 -0
  2149. data/vendor/local/share/man/man3/gnutls_x509_crt_set_version.3 +45 -0
  2150. data/vendor/local/share/man/man3/gnutls_x509_crt_sign.3 +41 -0
  2151. data/vendor/local/share/man/man3/gnutls_x509_crt_sign2.3 +48 -0
  2152. data/vendor/local/share/man/man3/gnutls_x509_crt_verify.3 +46 -0
  2153. data/vendor/local/share/man/man3/gnutls_x509_crt_verify_data.3 +46 -0
  2154. data/vendor/local/share/man/man3/gnutls_x509_crt_verify_hash.3 +46 -0
  2155. data/vendor/local/share/man/man3/gnutls_x509_dn_deinit.3 +36 -0
  2156. data/vendor/local/share/man/man3/gnutls_x509_dn_export.3 +50 -0
  2157. data/vendor/local/share/man/man3/gnutls_x509_dn_export2.3 +47 -0
  2158. data/vendor/local/share/man/man3/gnutls_x509_dn_get_rdn_ava.3 +58 -0
  2159. data/vendor/local/share/man/man3/gnutls_x509_dn_import.3 +43 -0
  2160. data/vendor/local/share/man/man3/gnutls_x509_dn_init.3 +41 -0
  2161. data/vendor/local/share/man/man3/gnutls_x509_dn_oid_known.3 +41 -0
  2162. data/vendor/local/share/man/man3/gnutls_x509_dn_oid_name.3 +42 -0
  2163. data/vendor/local/share/man/man3/gnutls_x509_policy_release.3 +36 -0
  2164. data/vendor/local/share/man/man3/gnutls_x509_privkey_cpy.3 +39 -0
  2165. data/vendor/local/share/man/man3/gnutls_x509_privkey_deinit.3 +33 -0
  2166. data/vendor/local/share/man/man3/gnutls_x509_privkey_export.3 +52 -0
  2167. data/vendor/local/share/man/man3/gnutls_x509_privkey_export2.3 +49 -0
  2168. data/vendor/local/share/man/man3/gnutls_x509_privkey_export2_pkcs8.3 +58 -0
  2169. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_dsa_raw.3 +48 -0
  2170. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_ecc_raw.3 +48 -0
  2171. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_pkcs8.3 +61 -0
  2172. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_rsa_raw.3 +50 -0
  2173. data/vendor/local/share/man/man3/gnutls_x509_privkey_export_rsa_raw2.3 +56 -0
  2174. data/vendor/local/share/man/man3/gnutls_x509_privkey_fix.3 +37 -0
  2175. data/vendor/local/share/man/man3/gnutls_x509_privkey_generate.3 +49 -0
  2176. data/vendor/local/share/man/man3/gnutls_x509_privkey_get_key_id.3 +50 -0
  2177. data/vendor/local/share/man/man3/gnutls_x509_privkey_get_pk_algorithm.3 +37 -0
  2178. data/vendor/local/share/man/man3/gnutls_x509_privkey_get_pk_algorithm2.3 +39 -0
  2179. data/vendor/local/share/man/man3/gnutls_x509_privkey_import.3 +46 -0
  2180. data/vendor/local/share/man/man3/gnutls_x509_privkey_import2.3 +52 -0
  2181. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_dsa_raw.3 +48 -0
  2182. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_ecc_raw.3 +48 -0
  2183. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_openssl.3 +48 -0
  2184. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_pkcs8.3 +59 -0
  2185. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_rsa_raw.3 +50 -0
  2186. data/vendor/local/share/man/man3/gnutls_x509_privkey_import_rsa_raw2.3 +54 -0
  2187. data/vendor/local/share/man/man3/gnutls_x509_privkey_init.3 +36 -0
  2188. data/vendor/local/share/man/man3/gnutls_x509_privkey_sec_param.3 +39 -0
  2189. data/vendor/local/share/man/man3/gnutls_x509_privkey_sign_data.3 +59 -0
  2190. data/vendor/local/share/man/man3/gnutls_x509_privkey_sign_hash.3 +45 -0
  2191. data/vendor/local/share/man/man3/gnutls_x509_privkey_verify_params.3 +36 -0
  2192. data/vendor/local/share/man/man3/gnutls_x509_rdn_get.3 +44 -0
  2193. data/vendor/local/share/man/man3/gnutls_x509_rdn_get_by_oid.3 +51 -0
  2194. data/vendor/local/share/man/man3/gnutls_x509_rdn_get_oid.3 +47 -0
  2195. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_cas.3 +45 -0
  2196. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_crls.3 +50 -0
  2197. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_named_crt.3 +56 -0
  2198. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_system_trust.3 +43 -0
  2199. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_trust_file.3 +49 -0
  2200. data/vendor/local/share/man/man3/gnutls_x509_trust_list_add_trust_mem.3 +48 -0
  2201. data/vendor/local/share/man/man3/gnutls_x509_trust_list_deinit.3 +37 -0
  2202. data/vendor/local/share/man/man3/gnutls_x509_trust_list_get_issuer.3 +45 -0
  2203. data/vendor/local/share/man/man3/gnutls_x509_trust_list_init.3 +40 -0
  2204. data/vendor/local/share/man/man3/gnutls_x509_trust_list_remove_cas.3 +48 -0
  2205. data/vendor/local/share/man/man3/gnutls_x509_trust_list_remove_trust_file.3 +46 -0
  2206. data/vendor/local/share/man/man3/gnutls_x509_trust_list_remove_trust_mem.3 +44 -0
  2207. data/vendor/local/share/man/man3/gnutls_x509_trust_list_verify_crt.3 +50 -0
  2208. data/vendor/local/share/man/man3/gnutls_x509_trust_list_verify_named_crt.3 +53 -0
  2209. data/vendor/local/share/man/man3/iconv.3 +92 -0
  2210. data/vendor/local/share/man/man3/iconv_close.3 +31 -0
  2211. data/vendor/local/share/man/man3/iconv_open.3 +205 -0
  2212. data/vendor/local/share/man/man3/iconv_open_into.3 +47 -0
  2213. data/vendor/local/share/man/man3/iconvctl.3 +67 -0
  2214. data/vendor/local/share/man/man3/ngettext.3 +60 -0
  2215. data/vendor/local/share/man/man3/textdomain.3 +57 -0
  2216. data/vendor/local/share/man/man3/xssl_client_init.3 +56 -0
  2217. data/vendor/local/share/man/man3/xssl_cred_deinit.3 +37 -0
  2218. data/vendor/local/share/man/man3/xssl_cred_init.3 +48 -0
  2219. data/vendor/local/share/man/man3/xssl_deinit.3 +36 -0
  2220. data/vendor/local/share/man/man3/xssl_flush.3 +39 -0
  2221. data/vendor/local/share/man/man3/xssl_get_session.3 +35 -0
  2222. data/vendor/local/share/man/man3/xssl_getdelim.3 +49 -0
  2223. data/vendor/local/share/man/man3/xssl_printf.3 +45 -0
  2224. data/vendor/local/share/man/man3/xssl_read.3 +43 -0
  2225. data/vendor/local/share/man/man3/xssl_server_init.3 +50 -0
  2226. data/vendor/local/share/man/man3/xssl_sinit.3 +44 -0
  2227. data/vendor/local/share/man/man3/xssl_write.3 +47 -0
  2228. metadata +2311 -0
@@ -0,0 +1,3183 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>GLib Reference Manual: Threads</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7
+ <link rel="home" href="index.html" title="GLib Reference Manual">
8
+ <link rel="up" href="glib-core.html" title="GLib Core Application Support">
9
+ <link rel="prev" href="glib-The-Main-Event-Loop.html" title="The Main Event Loop">
10
+ <link rel="next" href="glib-Thread-Pools.html" title="Thread Pools">
11
+ <meta name="generator" content="GTK-Doc V1.21.1 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ </head>
14
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16
+ <td width="100%" align="left" class="shortcuts">
17
+ <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18
+ <a href="#glib-Threads.description" class="shortcut">Description</a></span>
19
+ </td>
20
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21
+ <td><a accesskey="u" href="glib-core.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22
+ <td><a accesskey="p" href="glib-The-Main-Event-Loop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23
+ <td><a accesskey="n" href="glib-Thread-Pools.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24
+ </tr></table>
25
+ <div class="refentry">
26
+ <a name="glib-Threads"></a><div class="titlepage"></div>
27
+ <div class="refnamediv"><table width="100%"><tr>
28
+ <td valign="top">
29
+ <h2><span class="refentrytitle"><a name="glib-Threads.top_of_page"></a>Threads</span></h2>
30
+ <p>Threads — portable support for threads, mutexes, locks,
31
+ conditions and thread private data</p>
32
+ </td>
33
+ <td class="gallery_image" valign="top" align="right"></td>
34
+ </tr></table></div>
35
+ <div class="refsect1">
36
+ <a name="glib-Threads.functions"></a><h2>Functions</h2>
37
+ <div class="informaltable"><table width="100%" border="0">
38
+ <colgroup>
39
+ <col width="150px" class="functions_return">
40
+ <col class="functions_name">
41
+ </colgroup>
42
+ <tbody>
43
+ <tr>
44
+ <td class="function_type">
45
+ <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>
46
+ </td>
47
+ <td class="function_name">
48
+ <span class="c_punctuation">(</span><a class="link" href="glib-Threads.html#GThreadFunc" title="GThreadFunc ()">*GThreadFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
49
+ </td>
50
+ </tr>
51
+ <tr>
52
+ <td class="function_type">
53
+ <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
54
+ </td>
55
+ <td class="function_name">
56
+ <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()">g_thread_new</a> <span class="c_punctuation">()</span>
57
+ </td>
58
+ </tr>
59
+ <tr>
60
+ <td class="function_type">
61
+ <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
62
+ </td>
63
+ <td class="function_name">
64
+ <a class="link" href="glib-Threads.html#g-thread-try-new" title="g_thread_try_new ()">g_thread_try_new</a> <span class="c_punctuation">()</span>
65
+ </td>
66
+ </tr>
67
+ <tr>
68
+ <td class="function_type">
69
+ <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
70
+ </td>
71
+ <td class="function_name">
72
+ <a class="link" href="glib-Threads.html#g-thread-ref" title="g_thread_ref ()">g_thread_ref</a> <span class="c_punctuation">()</span>
73
+ </td>
74
+ </tr>
75
+ <tr>
76
+ <td class="function_type">
77
+ <span class="returnvalue">void</span>
78
+ </td>
79
+ <td class="function_name">
80
+ <a class="link" href="glib-Threads.html#g-thread-unref" title="g_thread_unref ()">g_thread_unref</a> <span class="c_punctuation">()</span>
81
+ </td>
82
+ </tr>
83
+ <tr>
84
+ <td class="function_type">
85
+ <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>
86
+ </td>
87
+ <td class="function_name">
88
+ <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()">g_thread_join</a> <span class="c_punctuation">()</span>
89
+ </td>
90
+ </tr>
91
+ <tr>
92
+ <td class="function_type">
93
+ <span class="returnvalue">void</span>
94
+ </td>
95
+ <td class="function_name">
96
+ <a class="link" href="glib-Threads.html#g-thread-yield" title="g_thread_yield ()">g_thread_yield</a> <span class="c_punctuation">()</span>
97
+ </td>
98
+ </tr>
99
+ <tr>
100
+ <td class="function_type">
101
+ <span class="returnvalue">void</span>
102
+ </td>
103
+ <td class="function_name">
104
+ <a class="link" href="glib-Threads.html#g-thread-exit" title="g_thread_exit ()">g_thread_exit</a> <span class="c_punctuation">()</span>
105
+ </td>
106
+ </tr>
107
+ <tr>
108
+ <td class="function_type">
109
+ <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
110
+ </td>
111
+ <td class="function_name">
112
+ <a class="link" href="glib-Threads.html#g-thread-self" title="g_thread_self ()">g_thread_self</a> <span class="c_punctuation">()</span>
113
+ </td>
114
+ </tr>
115
+ <tr>
116
+ <td class="function_type">
117
+ <span class="returnvalue">void</span>
118
+ </td>
119
+ <td class="function_name">
120
+ <a class="link" href="glib-Threads.html#g-mutex-init" title="g_mutex_init ()">g_mutex_init</a> <span class="c_punctuation">()</span>
121
+ </td>
122
+ </tr>
123
+ <tr>
124
+ <td class="function_type">
125
+ <span class="returnvalue">void</span>
126
+ </td>
127
+ <td class="function_name">
128
+ <a class="link" href="glib-Threads.html#g-mutex-clear" title="g_mutex_clear ()">g_mutex_clear</a> <span class="c_punctuation">()</span>
129
+ </td>
130
+ </tr>
131
+ <tr>
132
+ <td class="function_type">
133
+ <span class="returnvalue">void</span>
134
+ </td>
135
+ <td class="function_name">
136
+ <a class="link" href="glib-Threads.html#g-mutex-lock" title="g_mutex_lock ()">g_mutex_lock</a> <span class="c_punctuation">()</span>
137
+ </td>
138
+ </tr>
139
+ <tr>
140
+ <td class="function_type">
141
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
142
+ </td>
143
+ <td class="function_name">
144
+ <a class="link" href="glib-Threads.html#g-mutex-trylock" title="g_mutex_trylock ()">g_mutex_trylock</a> <span class="c_punctuation">()</span>
145
+ </td>
146
+ </tr>
147
+ <tr>
148
+ <td class="function_type">
149
+ <span class="returnvalue">void</span>
150
+ </td>
151
+ <td class="function_name">
152
+ <a class="link" href="glib-Threads.html#g-mutex-unlock" title="g_mutex_unlock ()">g_mutex_unlock</a> <span class="c_punctuation">()</span>
153
+ </td>
154
+ </tr>
155
+ <tr>
156
+ <td class="define_keyword">#define</td>
157
+ <td class="function_name">
158
+ <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()">G_LOCK_DEFINE</a><span class="c_punctuation">()</span>
159
+ </td>
160
+ </tr>
161
+ <tr>
162
+ <td class="define_keyword">#define</td>
163
+ <td class="function_name">
164
+ <a class="link" href="glib-Threads.html#G-LOCK-DEFINE-STATIC:CAPS" title="G_LOCK_DEFINE_STATIC()">G_LOCK_DEFINE_STATIC</a><span class="c_punctuation">()</span>
165
+ </td>
166
+ </tr>
167
+ <tr>
168
+ <td class="define_keyword">#define</td>
169
+ <td class="function_name">
170
+ <a class="link" href="glib-Threads.html#G-LOCK-EXTERN:CAPS" title="G_LOCK_EXTERN()">G_LOCK_EXTERN</a><span class="c_punctuation">()</span>
171
+ </td>
172
+ </tr>
173
+ <tr>
174
+ <td class="define_keyword">#define</td>
175
+ <td class="function_name">
176
+ <a class="link" href="glib-Threads.html#G-LOCK:CAPS" title="G_LOCK()">G_LOCK</a><span class="c_punctuation">()</span>
177
+ </td>
178
+ </tr>
179
+ <tr>
180
+ <td class="define_keyword">#define</td>
181
+ <td class="function_name">
182
+ <a class="link" href="glib-Threads.html#G-TRYLOCK:CAPS" title="G_TRYLOCK()">G_TRYLOCK</a><span class="c_punctuation">()</span>
183
+ </td>
184
+ </tr>
185
+ <tr>
186
+ <td class="define_keyword">#define</td>
187
+ <td class="function_name">
188
+ <a class="link" href="glib-Threads.html#G-UNLOCK:CAPS" title="G_UNLOCK()">G_UNLOCK</a><span class="c_punctuation">()</span>
189
+ </td>
190
+ </tr>
191
+ <tr>
192
+ <td class="function_type">
193
+ <span class="returnvalue">void</span>
194
+ </td>
195
+ <td class="function_name">
196
+ <a class="link" href="glib-Threads.html#g-rec-mutex-init" title="g_rec_mutex_init ()">g_rec_mutex_init</a> <span class="c_punctuation">()</span>
197
+ </td>
198
+ </tr>
199
+ <tr>
200
+ <td class="function_type">
201
+ <span class="returnvalue">void</span>
202
+ </td>
203
+ <td class="function_name">
204
+ <a class="link" href="glib-Threads.html#g-rec-mutex-clear" title="g_rec_mutex_clear ()">g_rec_mutex_clear</a> <span class="c_punctuation">()</span>
205
+ </td>
206
+ </tr>
207
+ <tr>
208
+ <td class="function_type">
209
+ <span class="returnvalue">void</span>
210
+ </td>
211
+ <td class="function_name">
212
+ <a class="link" href="glib-Threads.html#g-rec-mutex-lock" title="g_rec_mutex_lock ()">g_rec_mutex_lock</a> <span class="c_punctuation">()</span>
213
+ </td>
214
+ </tr>
215
+ <tr>
216
+ <td class="function_type">
217
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
218
+ </td>
219
+ <td class="function_name">
220
+ <a class="link" href="glib-Threads.html#g-rec-mutex-trylock" title="g_rec_mutex_trylock ()">g_rec_mutex_trylock</a> <span class="c_punctuation">()</span>
221
+ </td>
222
+ </tr>
223
+ <tr>
224
+ <td class="function_type">
225
+ <span class="returnvalue">void</span>
226
+ </td>
227
+ <td class="function_name">
228
+ <a class="link" href="glib-Threads.html#g-rec-mutex-unlock" title="g_rec_mutex_unlock ()">g_rec_mutex_unlock</a> <span class="c_punctuation">()</span>
229
+ </td>
230
+ </tr>
231
+ <tr>
232
+ <td class="function_type">
233
+ <span class="returnvalue">void</span>
234
+ </td>
235
+ <td class="function_name">
236
+ <a class="link" href="glib-Threads.html#g-rw-lock-init" title="g_rw_lock_init ()">g_rw_lock_init</a> <span class="c_punctuation">()</span>
237
+ </td>
238
+ </tr>
239
+ <tr>
240
+ <td class="function_type">
241
+ <span class="returnvalue">void</span>
242
+ </td>
243
+ <td class="function_name">
244
+ <a class="link" href="glib-Threads.html#g-rw-lock-clear" title="g_rw_lock_clear ()">g_rw_lock_clear</a> <span class="c_punctuation">()</span>
245
+ </td>
246
+ </tr>
247
+ <tr>
248
+ <td class="function_type">
249
+ <span class="returnvalue">void</span>
250
+ </td>
251
+ <td class="function_name">
252
+ <a class="link" href="glib-Threads.html#g-rw-lock-writer-lock" title="g_rw_lock_writer_lock ()">g_rw_lock_writer_lock</a> <span class="c_punctuation">()</span>
253
+ </td>
254
+ </tr>
255
+ <tr>
256
+ <td class="function_type">
257
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
258
+ </td>
259
+ <td class="function_name">
260
+ <a class="link" href="glib-Threads.html#g-rw-lock-writer-trylock" title="g_rw_lock_writer_trylock ()">g_rw_lock_writer_trylock</a> <span class="c_punctuation">()</span>
261
+ </td>
262
+ </tr>
263
+ <tr>
264
+ <td class="function_type">
265
+ <span class="returnvalue">void</span>
266
+ </td>
267
+ <td class="function_name">
268
+ <a class="link" href="glib-Threads.html#g-rw-lock-writer-unlock" title="g_rw_lock_writer_unlock ()">g_rw_lock_writer_unlock</a> <span class="c_punctuation">()</span>
269
+ </td>
270
+ </tr>
271
+ <tr>
272
+ <td class="function_type">
273
+ <span class="returnvalue">void</span>
274
+ </td>
275
+ <td class="function_name">
276
+ <a class="link" href="glib-Threads.html#g-rw-lock-reader-lock" title="g_rw_lock_reader_lock ()">g_rw_lock_reader_lock</a> <span class="c_punctuation">()</span>
277
+ </td>
278
+ </tr>
279
+ <tr>
280
+ <td class="function_type">
281
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
282
+ </td>
283
+ <td class="function_name">
284
+ <a class="link" href="glib-Threads.html#g-rw-lock-reader-trylock" title="g_rw_lock_reader_trylock ()">g_rw_lock_reader_trylock</a> <span class="c_punctuation">()</span>
285
+ </td>
286
+ </tr>
287
+ <tr>
288
+ <td class="function_type">
289
+ <span class="returnvalue">void</span>
290
+ </td>
291
+ <td class="function_name">
292
+ <a class="link" href="glib-Threads.html#g-rw-lock-reader-unlock" title="g_rw_lock_reader_unlock ()">g_rw_lock_reader_unlock</a> <span class="c_punctuation">()</span>
293
+ </td>
294
+ </tr>
295
+ <tr>
296
+ <td class="function_type">
297
+ <span class="returnvalue">void</span>
298
+ </td>
299
+ <td class="function_name">
300
+ <a class="link" href="glib-Threads.html#g-cond-init" title="g_cond_init ()">g_cond_init</a> <span class="c_punctuation">()</span>
301
+ </td>
302
+ </tr>
303
+ <tr>
304
+ <td class="function_type">
305
+ <span class="returnvalue">void</span>
306
+ </td>
307
+ <td class="function_name">
308
+ <a class="link" href="glib-Threads.html#g-cond-clear" title="g_cond_clear ()">g_cond_clear</a> <span class="c_punctuation">()</span>
309
+ </td>
310
+ </tr>
311
+ <tr>
312
+ <td class="function_type">
313
+ <span class="returnvalue">void</span>
314
+ </td>
315
+ <td class="function_name">
316
+ <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()">g_cond_wait</a> <span class="c_punctuation">()</span>
317
+ </td>
318
+ </tr>
319
+ <tr>
320
+ <td class="function_type">
321
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
322
+ </td>
323
+ <td class="function_name">
324
+ <a class="link" href="glib-Threads.html#g-cond-timed-wait" title="g_cond_timed_wait ()">g_cond_timed_wait</a> <span class="c_punctuation">()</span>
325
+ </td>
326
+ </tr>
327
+ <tr>
328
+ <td class="function_type">
329
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
330
+ </td>
331
+ <td class="function_name">
332
+ <a class="link" href="glib-Threads.html#g-cond-wait-until" title="g_cond_wait_until ()">g_cond_wait_until</a> <span class="c_punctuation">()</span>
333
+ </td>
334
+ </tr>
335
+ <tr>
336
+ <td class="function_type">
337
+ <span class="returnvalue">void</span>
338
+ </td>
339
+ <td class="function_name">
340
+ <a class="link" href="glib-Threads.html#g-cond-signal" title="g_cond_signal ()">g_cond_signal</a> <span class="c_punctuation">()</span>
341
+ </td>
342
+ </tr>
343
+ <tr>
344
+ <td class="function_type">
345
+ <span class="returnvalue">void</span>
346
+ </td>
347
+ <td class="function_name">
348
+ <a class="link" href="glib-Threads.html#g-cond-broadcast" title="g_cond_broadcast ()">g_cond_broadcast</a> <span class="c_punctuation">()</span>
349
+ </td>
350
+ </tr>
351
+ <tr>
352
+ <td class="define_keyword">#define</td>
353
+ <td class="function_name">
354
+ <a class="link" href="glib-Threads.html#G-PRIVATE-INIT:CAPS" title="G_PRIVATE_INIT()">G_PRIVATE_INIT</a><span class="c_punctuation">()</span>
355
+ </td>
356
+ </tr>
357
+ <tr>
358
+ <td class="function_type">
359
+ <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>
360
+ </td>
361
+ <td class="function_name">
362
+ <a class="link" href="glib-Threads.html#g-private-get" title="g_private_get ()">g_private_get</a> <span class="c_punctuation">()</span>
363
+ </td>
364
+ </tr>
365
+ <tr>
366
+ <td class="function_type">
367
+ <span class="returnvalue">void</span>
368
+ </td>
369
+ <td class="function_name">
370
+ <a class="link" href="glib-Threads.html#g-private-set" title="g_private_set ()">g_private_set</a> <span class="c_punctuation">()</span>
371
+ </td>
372
+ </tr>
373
+ <tr>
374
+ <td class="function_type">
375
+ <span class="returnvalue">void</span>
376
+ </td>
377
+ <td class="function_name">
378
+ <a class="link" href="glib-Threads.html#g-private-replace" title="g_private_replace ()">g_private_replace</a> <span class="c_punctuation">()</span>
379
+ </td>
380
+ </tr>
381
+ <tr>
382
+ <td class="define_keyword">#define</td>
383
+ <td class="function_name">
384
+ <a class="link" href="glib-Threads.html#g-once" title="g_once()">g_once</a><span class="c_punctuation">()</span>
385
+ </td>
386
+ </tr>
387
+ <tr>
388
+ <td class="function_type">
389
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
390
+ </td>
391
+ <td class="function_name">
392
+ <a class="link" href="glib-Threads.html#g-once-init-enter" title="g_once_init_enter ()">g_once_init_enter</a> <span class="c_punctuation">()</span>
393
+ </td>
394
+ </tr>
395
+ <tr>
396
+ <td class="function_type">
397
+ <span class="returnvalue">void</span>
398
+ </td>
399
+ <td class="function_name">
400
+ <a class="link" href="glib-Threads.html#g-once-init-leave" title="g_once_init_leave ()">g_once_init_leave</a> <span class="c_punctuation">()</span>
401
+ </td>
402
+ </tr>
403
+ <tr>
404
+ <td class="function_type">
405
+ <span class="returnvalue">void</span>
406
+ </td>
407
+ <td class="function_name">
408
+ <a class="link" href="glib-Threads.html#g-bit-lock" title="g_bit_lock ()">g_bit_lock</a> <span class="c_punctuation">()</span>
409
+ </td>
410
+ </tr>
411
+ <tr>
412
+ <td class="function_type">
413
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
414
+ </td>
415
+ <td class="function_name">
416
+ <a class="link" href="glib-Threads.html#g-bit-trylock" title="g_bit_trylock ()">g_bit_trylock</a> <span class="c_punctuation">()</span>
417
+ </td>
418
+ </tr>
419
+ <tr>
420
+ <td class="function_type">
421
+ <span class="returnvalue">void</span>
422
+ </td>
423
+ <td class="function_name">
424
+ <a class="link" href="glib-Threads.html#g-bit-unlock" title="g_bit_unlock ()">g_bit_unlock</a> <span class="c_punctuation">()</span>
425
+ </td>
426
+ </tr>
427
+ <tr>
428
+ <td class="function_type">
429
+ <span class="returnvalue">void</span>
430
+ </td>
431
+ <td class="function_name">
432
+ <a class="link" href="glib-Threads.html#g-pointer-bit-lock" title="g_pointer_bit_lock ()">g_pointer_bit_lock</a> <span class="c_punctuation">()</span>
433
+ </td>
434
+ </tr>
435
+ <tr>
436
+ <td class="function_type">
437
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
438
+ </td>
439
+ <td class="function_name">
440
+ <a class="link" href="glib-Threads.html#g-pointer-bit-trylock" title="g_pointer_bit_trylock ()">g_pointer_bit_trylock</a> <span class="c_punctuation">()</span>
441
+ </td>
442
+ </tr>
443
+ <tr>
444
+ <td class="function_type">
445
+ <span class="returnvalue">void</span>
446
+ </td>
447
+ <td class="function_name">
448
+ <a class="link" href="glib-Threads.html#g-pointer-bit-unlock" title="g_pointer_bit_unlock ()">g_pointer_bit_unlock</a> <span class="c_punctuation">()</span>
449
+ </td>
450
+ </tr>
451
+ <tr>
452
+ <td class="function_type">
453
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>
454
+ </td>
455
+ <td class="function_name">
456
+ <a class="link" href="glib-Threads.html#g-get-num-processors" title="g_get_num_processors ()">g_get_num_processors</a> <span class="c_punctuation">()</span>
457
+ </td>
458
+ </tr>
459
+ </tbody>
460
+ </table></div>
461
+ </div>
462
+ <div class="refsect1">
463
+ <a name="glib-Threads.other"></a><h2>Types and Values</h2>
464
+ <div class="informaltable"><table width="100%" border="0">
465
+ <colgroup>
466
+ <col width="150px" class="name">
467
+ <col class="description">
468
+ </colgroup>
469
+ <tbody>
470
+ <tr>
471
+ <td class="define_keyword">#define</td>
472
+ <td class="function_name"><a class="link" href="glib-Threads.html#G-THREAD-ERROR:CAPS" title="G_THREAD_ERROR">G_THREAD_ERROR</a></td>
473
+ </tr>
474
+ <tr>
475
+ <td class="datatype_keyword">enum</td>
476
+ <td class="function_name"><a class="link" href="glib-Threads.html#GThreadError" title="enum GThreadError">GThreadError</a></td>
477
+ </tr>
478
+ <tr>
479
+ <td class="datatype_keyword"> </td>
480
+ <td class="function_name"><a class="link" href="glib-Threads.html#GThread" title="GThread">GThread</a></td>
481
+ </tr>
482
+ <tr>
483
+ <td class="datatype_keyword">union</td>
484
+ <td class="function_name"><a class="link" href="glib-Threads.html#GMutex" title="union GMutex">GMutex</a></td>
485
+ </tr>
486
+ <tr>
487
+ <td class="datatype_keyword">struct</td>
488
+ <td class="function_name"><a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex">GRecMutex</a></td>
489
+ </tr>
490
+ <tr>
491
+ <td class="datatype_keyword">struct</td>
492
+ <td class="function_name"><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock">GRWLock</a></td>
493
+ </tr>
494
+ <tr>
495
+ <td class="datatype_keyword">struct</td>
496
+ <td class="function_name"><a class="link" href="glib-Threads.html#GCond" title="struct GCond">GCond</a></td>
497
+ </tr>
498
+ <tr>
499
+ <td class="datatype_keyword">struct</td>
500
+ <td class="function_name"><a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate">GPrivate</a></td>
501
+ </tr>
502
+ <tr>
503
+ <td class="datatype_keyword">struct</td>
504
+ <td class="function_name"><a class="link" href="glib-Threads.html#GOnce" title="struct GOnce">GOnce</a></td>
505
+ </tr>
506
+ <tr>
507
+ <td class="datatype_keyword">enum</td>
508
+ <td class="function_name"><a class="link" href="glib-Threads.html#GOnceStatus" title="enum GOnceStatus">GOnceStatus</a></td>
509
+ </tr>
510
+ <tr>
511
+ <td class="define_keyword">#define</td>
512
+ <td class="function_name"><a class="link" href="glib-Threads.html#G-ONCE-INIT:CAPS" title="G_ONCE_INIT">G_ONCE_INIT</a></td>
513
+ </tr>
514
+ </tbody>
515
+ </table></div>
516
+ </div>
517
+ <div class="refsect1">
518
+ <a name="glib-Threads.includes"></a><h2>Includes</h2>
519
+ <pre class="synopsis">#include &lt;glib.h&gt;
520
+ </pre>
521
+ </div>
522
+ <div class="refsect1">
523
+ <a name="glib-Threads.description"></a><h2>Description</h2>
524
+ <p>Threads act almost like processes, but unlike processes all threads
525
+ of one process share the same memory. This is good, as it provides
526
+ easy communication between the involved threads via this shared
527
+ memory, and it is bad, because strange things (so called
528
+ "Heisenbugs") might happen if the program is not carefully designed.
529
+ In particular, due to the concurrent nature of threads, no
530
+ assumptions on the order of execution of code running in different
531
+ threads can be made, unless order is explicitly forced by the
532
+ programmer through synchronization primitives.</p>
533
+ <p>The aim of the thread-related functions in GLib is to provide a
534
+ portable means for writing multi-threaded software. There are
535
+ primitives for mutexes to protect the access to portions of memory
536
+ (<a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a>, <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> and <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a>). There is a facility to use
537
+ individual bits for locks (<a class="link" href="glib-Threads.html#g-bit-lock" title="g_bit_lock ()"><code class="function">g_bit_lock()</code></a>). There are primitives
538
+ for condition variables to allow synchronization of threads (<a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a>).
539
+ There are primitives for thread-private data - data that every
540
+ thread has a private instance of (<a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a>). There are facilities
541
+ for one-time initialization (<a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a>, <a class="link" href="glib-Threads.html#g-once-init-enter" title="g_once_init_enter ()"><code class="function">g_once_init_enter()</code></a>). Finally,
542
+ there are primitives to create and manage threads (<a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a>).</p>
543
+ <p>The GLib threading system used to be initialized with <a class="link" href="glib-Deprecated-Thread-APIs.html#g-thread-init" title="g_thread_init ()"><code class="function">g_thread_init()</code></a>.
544
+ This is no longer necessary. Since version 2.32, the GLib threading
545
+ system is automatically initialized at the start of your program,
546
+ and all thread-creation functions and synchronization primitives
547
+ are available right away.</p>
548
+ <p>Note that it is not safe to assume that your program has no threads
549
+ even if you don't call <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a> yourself. GLib and GIO can
550
+ and will create threads for their own purposes in some cases, such
551
+ as when using <a class="link" href="glib-UNIX-specific-utilities-and-integration.html#g-unix-signal-source-new" title="g_unix_signal_source_new ()"><code class="function">g_unix_signal_source_new()</code></a> or when using GDBus.</p>
552
+ <p>Originally, UNIX did not have threads, and therefore some traditional
553
+ UNIX APIs are problematic in threaded programs. Some notable examples
554
+ are</p>
555
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
556
+ <li class="listitem"><p>C library functions that return data in statically allocated
557
+ buffers, such as <code class="function">strtok()</code> or <code class="function">strerror()</code>. For many of these,
558
+ there are thread-safe variants with a _r suffix, or you can
559
+ look at corresponding GLib APIs (like <a class="link" href="glib-String-Utility-Functions.html#g-strsplit" title="g_strsplit ()"><code class="function">g_strsplit()</code></a> or <a class="link" href="glib-String-Utility-Functions.html#g-strerror" title="g_strerror ()"><code class="function">g_strerror()</code></a>).</p></li>
560
+ <li class="listitem"><p>The functions <code class="function">setenv()</code> and <code class="function">unsetenv()</code> manipulate the process
561
+ environment in a not thread-safe way, and may interfere with <code class="function">getenv()</code>
562
+ calls in other threads. Note that <code class="function">getenv()</code> calls may be hidden behind
563
+ other APIs. For example, GNU <code class="function">gettext()</code> calls <code class="function">getenv()</code> under the
564
+ covers. In general, it is best to treat the environment as readonly.
565
+ If you absolutely have to modify the environment, do it early in
566
+ <code class="function">main()</code>, when no other threads are around yet.</p></li>
567
+ <li class="listitem"><p>The <a class="link" href="glib-running.html#setlocale" title="Locale"><code class="function">setlocale()</code></a> function changes the locale for the entire process,
568
+ affecting all threads. Temporary changes to the locale are often made
569
+ to change the behavior of string scanning or formatting functions
570
+ like <code class="function">scanf()</code> or <code class="function">printf()</code>. GLib offers a number of string APIs
571
+ (like <a class="link" href="glib-String-Utility-Functions.html#g-ascii-formatd" title="g_ascii_formatd ()"><code class="function">g_ascii_formatd()</code></a> or <a class="link" href="glib-String-Utility-Functions.html#g-ascii-strtod" title="g_ascii_strtod ()"><code class="function">g_ascii_strtod()</code></a>) that can often be
572
+ used as an alternative. Or you can use the <code class="function">uselocale()</code> function
573
+ to change the locale only for the current thread.</p></li>
574
+ <li class="listitem"><p>The <code class="function">fork()</code> function only takes the calling thread into the child's
575
+ copy of the process image. If other threads were executing in critical
576
+ sections they could have left mutexes locked which could easily
577
+ cause deadlocks in the new child. For this reason, you should
578
+ call <code class="function">exit()</code> or <code class="function">exec()</code> as soon as possible in the child and only
579
+ make signal-safe library calls before that.</p></li>
580
+ <li class="listitem"><p>The <code class="function">daemon()</code> function uses <code class="function">fork()</code> in a way contrary to what is
581
+ described above. It should not be used with GLib programs.</p></li>
582
+ </ul></div>
583
+ <p>GLib itself is internally completely thread-safe (all global data is
584
+ automatically locked), but individual data structure instances are
585
+ not automatically locked for performance reasons. For example,
586
+ you must coordinate accesses to the same <a class="link" href="glib-Hash-Tables.html#GHashTable" title="GHashTable"><span class="type">GHashTable</span></a> from multiple
587
+ threads. The two notable exceptions from this rule are <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>
588
+ and <a class="link" href="glib-Asynchronous-Queues.html#GAsyncQueue" title="GAsyncQueue"><span class="type">GAsyncQueue</span></a>, which are thread-safe and need no further
589
+ application-level locking to be accessed from multiple threads.
590
+ Most refcounting functions such as <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> are also thread-safe.</p>
591
+ </div>
592
+ <div class="refsect1">
593
+ <a name="glib-Threads.functions_details"></a><h2>Functions</h2>
594
+ <div class="refsect2">
595
+ <a name="GThreadFunc"></a><h3>GThreadFunc ()</h3>
596
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>
597
+ <span class="c_punctuation">(</span>*GThreadFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
598
+ <p>Specifies the type of the <em class="parameter"><code>func</code></em>
599
+ functions passed to <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a>
600
+ or <a class="link" href="glib-Threads.html#g-thread-try-new" title="g_thread_try_new ()"><code class="function">g_thread_try_new()</code></a>.</p>
601
+ <div class="refsect3">
602
+ <a name="id-1.4.3.7.2.5"></a><h4>Parameters</h4>
603
+ <div class="informaltable"><table width="100%" border="0">
604
+ <colgroup>
605
+ <col width="150px" class="parameters_name">
606
+ <col class="parameters_description">
607
+ <col width="200px" class="parameters_annotations">
608
+ </colgroup>
609
+ <tbody><tr>
610
+ <td class="parameter_name"><p>data</p></td>
611
+ <td class="parameter_description"><p>data passed to the thread</p></td>
612
+ <td class="parameter_annotations"> </td>
613
+ </tr></tbody>
614
+ </table></div>
615
+ </div>
616
+ <div class="refsect3">
617
+ <a name="id-1.4.3.7.2.6"></a><h4>Returns</h4>
618
+ <p> the return value of the thread</p>
619
+ <p></p>
620
+ </div>
621
+ </div>
622
+ <hr>
623
+ <div class="refsect2">
624
+ <a name="g-thread-new"></a><h3>g_thread_new ()</h3>
625
+ <pre class="programlisting"><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
626
+ g_thread_new (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *name</code></em>,
627
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GThreadFunc" title="GThreadFunc ()"><span class="type">GThreadFunc</span></a> func</code></em>,
628
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
629
+ <p>This function creates a new thread. The new thread starts by invoking
630
+ <em class="parameter"><code>func</code></em>
631
+ with the argument data. The thread will run until <em class="parameter"><code>func</code></em>
632
+ returns
633
+ or until <a class="link" href="glib-Threads.html#g-thread-exit" title="g_thread_exit ()"><code class="function">g_thread_exit()</code></a> is called from the new thread. The return value
634
+ of <em class="parameter"><code>func</code></em>
635
+ becomes the return value of the thread, which can be obtained
636
+ with <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a>.</p>
637
+ <p>The <em class="parameter"><code>name</code></em>
638
+ can be useful for discriminating threads in a debugger.
639
+ It is not used for other purposes and does not have to be unique.
640
+ Some systems restrict the length of <em class="parameter"><code>name</code></em>
641
+ to 16 bytes.</p>
642
+ <p>If the thread can not be created the program aborts. See
643
+ <a class="link" href="glib-Threads.html#g-thread-try-new" title="g_thread_try_new ()"><code class="function">g_thread_try_new()</code></a> if you want to attempt to deal with failures.</p>
644
+ <p>To free the struct returned by this function, use <a class="link" href="glib-Threads.html#g-thread-unref" title="g_thread_unref ()"><code class="function">g_thread_unref()</code></a>.
645
+ Note that <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a> implicitly unrefs the <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> as well.</p>
646
+ <div class="refsect3">
647
+ <a name="id-1.4.3.7.3.8"></a><h4>Parameters</h4>
648
+ <div class="informaltable"><table width="100%" border="0">
649
+ <colgroup>
650
+ <col width="150px" class="parameters_name">
651
+ <col class="parameters_description">
652
+ <col width="200px" class="parameters_annotations">
653
+ </colgroup>
654
+ <tbody>
655
+ <tr>
656
+ <td class="parameter_name"><p>name</p></td>
657
+ <td class="parameter_description"><p> an (optional) name for the new thread. </p></td>
658
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
659
+ </tr>
660
+ <tr>
661
+ <td class="parameter_name"><p>func</p></td>
662
+ <td class="parameter_description"><p>a function to execute in the new thread</p></td>
663
+ <td class="parameter_annotations"> </td>
664
+ </tr>
665
+ <tr>
666
+ <td class="parameter_name"><p>data</p></td>
667
+ <td class="parameter_description"><p>an argument to supply to the new thread</p></td>
668
+ <td class="parameter_annotations"> </td>
669
+ </tr>
670
+ </tbody>
671
+ </table></div>
672
+ </div>
673
+ <div class="refsect3">
674
+ <a name="id-1.4.3.7.3.9"></a><h4>Returns</h4>
675
+ <p> the new <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a></p>
676
+ <p></p>
677
+ </div>
678
+ <p class="since">Since 2.32</p>
679
+ </div>
680
+ <hr>
681
+ <div class="refsect2">
682
+ <a name="g-thread-try-new"></a><h3>g_thread_try_new ()</h3>
683
+ <pre class="programlisting"><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
684
+ g_thread_try_new (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *name</code></em>,
685
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GThreadFunc" title="GThreadFunc ()"><span class="type">GThreadFunc</span></a> func</code></em>,
686
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
687
+ <em class="parameter"><code><a class="link" href="glib-Error-Reporting.html#GError" title="struct GError"><span class="type">GError</span></a> **error</code></em>);</pre>
688
+ <p>This function is the same as <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a> except that
689
+ it allows for the possibility of failure.</p>
690
+ <p>If a thread can not be created (due to resource limits),
691
+ <em class="parameter"><code>error</code></em>
692
+ is set and <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is returned.</p>
693
+ <div class="refsect3">
694
+ <a name="id-1.4.3.7.4.6"></a><h4>Parameters</h4>
695
+ <div class="informaltable"><table width="100%" border="0">
696
+ <colgroup>
697
+ <col width="150px" class="parameters_name">
698
+ <col class="parameters_description">
699
+ <col width="200px" class="parameters_annotations">
700
+ </colgroup>
701
+ <tbody>
702
+ <tr>
703
+ <td class="parameter_name"><p>name</p></td>
704
+ <td class="parameter_description"><p> an (optional) name for the new thread. </p></td>
705
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
706
+ </tr>
707
+ <tr>
708
+ <td class="parameter_name"><p>func</p></td>
709
+ <td class="parameter_description"><p>a function to execute in the new thread</p></td>
710
+ <td class="parameter_annotations"> </td>
711
+ </tr>
712
+ <tr>
713
+ <td class="parameter_name"><p>data</p></td>
714
+ <td class="parameter_description"><p>an argument to supply to the new thread</p></td>
715
+ <td class="parameter_annotations"> </td>
716
+ </tr>
717
+ <tr>
718
+ <td class="parameter_name"><p>error</p></td>
719
+ <td class="parameter_description"><p>return location for error, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a></p></td>
720
+ <td class="parameter_annotations"> </td>
721
+ </tr>
722
+ </tbody>
723
+ </table></div>
724
+ </div>
725
+ <div class="refsect3">
726
+ <a name="id-1.4.3.7.4.7"></a><h4>Returns</h4>
727
+ <p> the new <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if an error occurred</p>
728
+ <p></p>
729
+ </div>
730
+ <p class="since">Since 2.32</p>
731
+ </div>
732
+ <hr>
733
+ <div class="refsect2">
734
+ <a name="g-thread-ref"></a><h3>g_thread_ref ()</h3>
735
+ <pre class="programlisting"><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
736
+ g_thread_ref (<em class="parameter"><code><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> *thread</code></em>);</pre>
737
+ <p>Increase the reference count on <em class="parameter"><code>thread</code></em>
738
+ .</p>
739
+ <div class="refsect3">
740
+ <a name="id-1.4.3.7.5.5"></a><h4>Parameters</h4>
741
+ <div class="informaltable"><table width="100%" border="0">
742
+ <colgroup>
743
+ <col width="150px" class="parameters_name">
744
+ <col class="parameters_description">
745
+ <col width="200px" class="parameters_annotations">
746
+ </colgroup>
747
+ <tbody><tr>
748
+ <td class="parameter_name"><p>thread</p></td>
749
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a></p></td>
750
+ <td class="parameter_annotations"> </td>
751
+ </tr></tbody>
752
+ </table></div>
753
+ </div>
754
+ <div class="refsect3">
755
+ <a name="id-1.4.3.7.5.6"></a><h4>Returns</h4>
756
+ <p> a new reference to <em class="parameter"><code>thread</code></em>
757
+ </p>
758
+ <p></p>
759
+ </div>
760
+ <p class="since">Since 2.32</p>
761
+ </div>
762
+ <hr>
763
+ <div class="refsect2">
764
+ <a name="g-thread-unref"></a><h3>g_thread_unref ()</h3>
765
+ <pre class="programlisting"><span class="returnvalue">void</span>
766
+ g_thread_unref (<em class="parameter"><code><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> *thread</code></em>);</pre>
767
+ <p>Decrease the reference count on <em class="parameter"><code>thread</code></em>
768
+ , possibly freeing all
769
+ resources associated with it.</p>
770
+ <p>Note that each thread holds a reference to its <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> while
771
+ it is running, so it is safe to drop your own reference to it
772
+ if you don't need it anymore.</p>
773
+ <div class="refsect3">
774
+ <a name="id-1.4.3.7.6.6"></a><h4>Parameters</h4>
775
+ <div class="informaltable"><table width="100%" border="0">
776
+ <colgroup>
777
+ <col width="150px" class="parameters_name">
778
+ <col class="parameters_description">
779
+ <col width="200px" class="parameters_annotations">
780
+ </colgroup>
781
+ <tbody><tr>
782
+ <td class="parameter_name"><p>thread</p></td>
783
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a></p></td>
784
+ <td class="parameter_annotations"> </td>
785
+ </tr></tbody>
786
+ </table></div>
787
+ </div>
788
+ <p class="since">Since 2.32</p>
789
+ </div>
790
+ <hr>
791
+ <div class="refsect2">
792
+ <a name="g-thread-join"></a><h3>g_thread_join ()</h3>
793
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>
794
+ g_thread_join (<em class="parameter"><code><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> *thread</code></em>);</pre>
795
+ <p>Waits until <em class="parameter"><code>thread</code></em>
796
+ finishes, i.e. the function <em class="parameter"><code>func</code></em>
797
+ , as
798
+ given to <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a>, returns or <a class="link" href="glib-Threads.html#g-thread-exit" title="g_thread_exit ()"><code class="function">g_thread_exit()</code></a> is called.
799
+ If <em class="parameter"><code>thread</code></em>
800
+ has already terminated, then <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a>
801
+ returns immediately.</p>
802
+ <p>Any thread can wait for any other thread by calling <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a>,
803
+ not just its 'creator'. Calling <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a> from multiple threads
804
+ for the same <em class="parameter"><code>thread</code></em>
805
+ leads to undefined behaviour.</p>
806
+ <p>The value returned by <em class="parameter"><code>func</code></em>
807
+ or given to <a class="link" href="glib-Threads.html#g-thread-exit" title="g_thread_exit ()"><code class="function">g_thread_exit()</code></a> is
808
+ returned by this function.</p>
809
+ <p>g_thread_join() consumes the reference to the passed-in <em class="parameter"><code>thread</code></em>
810
+ .
811
+ This will usually cause the <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> struct and associated resources
812
+ to be freed. Use <a class="link" href="glib-Threads.html#g-thread-ref" title="g_thread_ref ()"><code class="function">g_thread_ref()</code></a> to obtain an extra reference if you
813
+ want to keep the GThread alive beyond the <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a> call.</p>
814
+ <div class="refsect3">
815
+ <a name="id-1.4.3.7.7.8"></a><h4>Parameters</h4>
816
+ <div class="informaltable"><table width="100%" border="0">
817
+ <colgroup>
818
+ <col width="150px" class="parameters_name">
819
+ <col class="parameters_description">
820
+ <col width="200px" class="parameters_annotations">
821
+ </colgroup>
822
+ <tbody><tr>
823
+ <td class="parameter_name"><p>thread</p></td>
824
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a></p></td>
825
+ <td class="parameter_annotations"> </td>
826
+ </tr></tbody>
827
+ </table></div>
828
+ </div>
829
+ <div class="refsect3">
830
+ <a name="id-1.4.3.7.7.9"></a><h4>Returns</h4>
831
+ <p> the return value of the thread</p>
832
+ <p></p>
833
+ </div>
834
+ </div>
835
+ <hr>
836
+ <div class="refsect2">
837
+ <a name="g-thread-yield"></a><h3>g_thread_yield ()</h3>
838
+ <pre class="programlisting"><span class="returnvalue">void</span>
839
+ g_thread_yield ();</pre>
840
+ <p>Causes the calling thread to voluntarily relinquish the CPU, so
841
+ that other threads can run.</p>
842
+ <p>This function is often used as a method to make busy wait less evil.</p>
843
+ </div>
844
+ <hr>
845
+ <div class="refsect2">
846
+ <a name="g-thread-exit"></a><h3>g_thread_exit ()</h3>
847
+ <pre class="programlisting"><span class="returnvalue">void</span>
848
+ g_thread_exit (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> retval</code></em>);</pre>
849
+ <p>Terminates the current thread.</p>
850
+ <p>If another thread is waiting for us using <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a> then the
851
+ waiting thread will be woken up and get <em class="parameter"><code>retval</code></em>
852
+ as the return value
853
+ of <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a>.</p>
854
+ <p>Calling <a class="link" href="glib-Threads.html#g-thread-exit" title="g_thread_exit ()"><code class="function">g_thread_exit()</code></a> with a parameter <em class="parameter"><code>retval</code></em>
855
+ is equivalent to
856
+ returning <em class="parameter"><code>retval</code></em>
857
+ from the function <em class="parameter"><code>func</code></em>
858
+ , as given to <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a>.</p>
859
+ <p>You must only call <a class="link" href="glib-Threads.html#g-thread-exit" title="g_thread_exit ()"><code class="function">g_thread_exit()</code></a> from a thread that you created
860
+ yourself with <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a> or related APIs. You must not call
861
+ this function from a thread created with another threading library
862
+ or or from within a <a class="link" href="glib-Thread-Pools.html#GThreadPool" title="struct GThreadPool"><span class="type">GThreadPool</span></a>.</p>
863
+ <div class="refsect3">
864
+ <a name="id-1.4.3.7.9.8"></a><h4>Parameters</h4>
865
+ <div class="informaltable"><table width="100%" border="0">
866
+ <colgroup>
867
+ <col width="150px" class="parameters_name">
868
+ <col class="parameters_description">
869
+ <col width="200px" class="parameters_annotations">
870
+ </colgroup>
871
+ <tbody><tr>
872
+ <td class="parameter_name"><p>retval</p></td>
873
+ <td class="parameter_description"><p>the return value of this thread</p></td>
874
+ <td class="parameter_annotations"> </td>
875
+ </tr></tbody>
876
+ </table></div>
877
+ </div>
878
+ </div>
879
+ <hr>
880
+ <div class="refsect2">
881
+ <a name="g-thread-self"></a><h3>g_thread_self ()</h3>
882
+ <pre class="programlisting"><a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="returnvalue">GThread</span></a> *
883
+ g_thread_self (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
884
+ <p>This functions returns the <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> corresponding to the
885
+ current thread. Note that this function does not increase
886
+ the reference count of the returned struct.</p>
887
+ <p>This function will return a <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> even for threads that
888
+ were not created by GLib (i.e. those created by other threading
889
+ APIs). This may be useful for thread identification purposes
890
+ (i.e. comparisons) but you must not use GLib functions (such
891
+ as <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a>) on these threads.</p>
892
+ <div class="refsect3">
893
+ <a name="id-1.4.3.7.10.6"></a><h4>Returns</h4>
894
+ <p> the <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> representing the current thread</p>
895
+ <p></p>
896
+ </div>
897
+ </div>
898
+ <hr>
899
+ <div class="refsect2">
900
+ <a name="g-mutex-init"></a><h3>g_mutex_init ()</h3>
901
+ <pre class="programlisting"><span class="returnvalue">void</span>
902
+ g_mutex_init (<em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
903
+ <p>Initializes a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> so that it can be used.</p>
904
+ <p>This function is useful to initialize a mutex that has been
905
+ allocated on the stack, or as part of a larger structure.
906
+ It is not necessary to initialize a mutex that has been
907
+ statically allocated.</p>
908
+ <div class="informalexample">
909
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
910
+ <tbody>
911
+ <tr>
912
+ <td class="listing_lines" align="right"><pre>1
913
+ 2
914
+ 3
915
+ 4
916
+ 5
917
+ 6
918
+ 7
919
+ 8
920
+ 9</pre></td>
921
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="cbracket">{</span>
922
+ <span class="normal"> </span><span class="usertype">GMutex</span><span class="normal"> m</span><span class="symbol">;</span>
923
+ <span class="normal"> </span><span class="symbol">...</span>
924
+ <span class="cbracket">}</span><span class="normal"> Blob</span><span class="symbol">;</span>
925
+
926
+ <span class="usertype">Blob</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">b</span><span class="symbol">;</span>
927
+
928
+ <span class="normal">b </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-new">g_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">Blob</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
929
+ <span class="function"><a href="glib-Threads.html#g-mutex-init">g_mutex_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">b</span><span class="symbol">-&gt;</span><span class="normal">m</span><span class="symbol">);</span></pre></td>
930
+ </tr>
931
+ </tbody>
932
+ </table>
933
+ </div>
934
+
935
+ <p></p>
936
+ <p>To undo the effect of <a class="link" href="glib-Threads.html#g-mutex-init" title="g_mutex_init ()"><code class="function">g_mutex_init()</code></a> when a mutex is no longer
937
+ needed, use <a class="link" href="glib-Threads.html#g-mutex-clear" title="g_mutex_clear ()"><code class="function">g_mutex_clear()</code></a>.</p>
938
+ <p>Calling <a class="link" href="glib-Threads.html#g-mutex-init" title="g_mutex_init ()"><code class="function">g_mutex_init()</code></a> on an already initialized <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> leads
939
+ to undefined behaviour.</p>
940
+ <div class="refsect3">
941
+ <a name="id-1.4.3.7.11.10"></a><h4>Parameters</h4>
942
+ <div class="informaltable"><table width="100%" border="0">
943
+ <colgroup>
944
+ <col width="150px" class="parameters_name">
945
+ <col class="parameters_description">
946
+ <col width="200px" class="parameters_annotations">
947
+ </colgroup>
948
+ <tbody><tr>
949
+ <td class="parameter_name"><p>mutex</p></td>
950
+ <td class="parameter_description"><p>an uninitialized <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a></p></td>
951
+ <td class="parameter_annotations"> </td>
952
+ </tr></tbody>
953
+ </table></div>
954
+ </div>
955
+ <p class="since">Since 2.32</p>
956
+ </div>
957
+ <hr>
958
+ <div class="refsect2">
959
+ <a name="g-mutex-clear"></a><h3>g_mutex_clear ()</h3>
960
+ <pre class="programlisting"><span class="returnvalue">void</span>
961
+ g_mutex_clear (<em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
962
+ <p>Frees the resources allocated to a mutex with <a class="link" href="glib-Threads.html#g-mutex-init" title="g_mutex_init ()"><code class="function">g_mutex_init()</code></a>.</p>
963
+ <p>This function should not be used with a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> that has been
964
+ statically allocated.</p>
965
+ <p>Calling <a class="link" href="glib-Threads.html#g-mutex-clear" title="g_mutex_clear ()"><code class="function">g_mutex_clear()</code></a> on a locked mutex leads to undefined
966
+ behaviour.</p>
967
+ <p>Sine: 2.32</p>
968
+ <div class="refsect3">
969
+ <a name="id-1.4.3.7.12.8"></a><h4>Parameters</h4>
970
+ <div class="informaltable"><table width="100%" border="0">
971
+ <colgroup>
972
+ <col width="150px" class="parameters_name">
973
+ <col class="parameters_description">
974
+ <col width="200px" class="parameters_annotations">
975
+ </colgroup>
976
+ <tbody><tr>
977
+ <td class="parameter_name"><p>mutex</p></td>
978
+ <td class="parameter_description"><p>an initialized <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a></p></td>
979
+ <td class="parameter_annotations"> </td>
980
+ </tr></tbody>
981
+ </table></div>
982
+ </div>
983
+ </div>
984
+ <hr>
985
+ <div class="refsect2">
986
+ <a name="g-mutex-lock"></a><h3>g_mutex_lock ()</h3>
987
+ <pre class="programlisting"><span class="returnvalue">void</span>
988
+ g_mutex_lock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
989
+ <p>Locks <em class="parameter"><code>mutex</code></em>
990
+ . If <em class="parameter"><code>mutex</code></em>
991
+ is already locked by another thread, the
992
+ current thread will block until <em class="parameter"><code>mutex</code></em>
993
+ is unlocked by the other
994
+ thread.</p>
995
+ <p><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> is neither guaranteed to be recursive nor to be
996
+ non-recursive. As such, calling <a class="link" href="glib-Threads.html#g-mutex-lock" title="g_mutex_lock ()"><code class="function">g_mutex_lock()</code></a> on a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> that has
997
+ already been locked by the same thread results in undefined behaviour
998
+ (including but not limited to deadlocks).</p>
999
+ <div class="refsect3">
1000
+ <a name="id-1.4.3.7.13.6"></a><h4>Parameters</h4>
1001
+ <div class="informaltable"><table width="100%" border="0">
1002
+ <colgroup>
1003
+ <col width="150px" class="parameters_name">
1004
+ <col class="parameters_description">
1005
+ <col width="200px" class="parameters_annotations">
1006
+ </colgroup>
1007
+ <tbody><tr>
1008
+ <td class="parameter_name"><p>mutex</p></td>
1009
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a></p></td>
1010
+ <td class="parameter_annotations"> </td>
1011
+ </tr></tbody>
1012
+ </table></div>
1013
+ </div>
1014
+ </div>
1015
+ <hr>
1016
+ <div class="refsect2">
1017
+ <a name="g-mutex-trylock"></a><h3>g_mutex_trylock ()</h3>
1018
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
1019
+ g_mutex_trylock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
1020
+ <p>Tries to lock <em class="parameter"><code>mutex</code></em>
1021
+ . If <em class="parameter"><code>mutex</code></em>
1022
+ is already locked by another thread,
1023
+ it immediately returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>. Otherwise it locks <em class="parameter"><code>mutex</code></em>
1024
+ and returns
1025
+ <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>.</p>
1026
+ <p><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> is neither guaranteed to be recursive nor to be
1027
+ non-recursive. As such, calling <a class="link" href="glib-Threads.html#g-mutex-lock" title="g_mutex_lock ()"><code class="function">g_mutex_lock()</code></a> on a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> that has
1028
+ already been locked by the same thread results in undefined behaviour
1029
+ (including but not limited to deadlocks or arbitrary return values).</p>
1030
+ <div class="refsect3">
1031
+ <a name="id-1.4.3.7.14.6"></a><h4>Parameters</h4>
1032
+ <div class="informaltable"><table width="100%" border="0">
1033
+ <colgroup>
1034
+ <col width="150px" class="parameters_name">
1035
+ <col class="parameters_description">
1036
+ <col width="200px" class="parameters_annotations">
1037
+ </colgroup>
1038
+ <tbody><tr>
1039
+ <td class="parameter_name"><p>mutex</p></td>
1040
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a></p></td>
1041
+ <td class="parameter_annotations"> </td>
1042
+ </tr></tbody>
1043
+ </table></div>
1044
+ </div>
1045
+ <div class="refsect3">
1046
+ <a name="id-1.4.3.7.14.7"></a><h4>Returns</h4>
1047
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>mutex</code></em>
1048
+ could be locked</p>
1049
+ <p></p>
1050
+ </div>
1051
+ </div>
1052
+ <hr>
1053
+ <div class="refsect2">
1054
+ <a name="g-mutex-unlock"></a><h3>g_mutex_unlock ()</h3>
1055
+ <pre class="programlisting"><span class="returnvalue">void</span>
1056
+ g_mutex_unlock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
1057
+ <p>Unlocks <em class="parameter"><code>mutex</code></em>
1058
+ . If another thread is blocked in a <a class="link" href="glib-Threads.html#g-mutex-lock" title="g_mutex_lock ()"><code class="function">g_mutex_lock()</code></a>
1059
+ call for <em class="parameter"><code>mutex</code></em>
1060
+ , it will become unblocked and can lock <em class="parameter"><code>mutex</code></em>
1061
+ itself.</p>
1062
+ <p>Calling <a class="link" href="glib-Threads.html#g-mutex-unlock" title="g_mutex_unlock ()"><code class="function">g_mutex_unlock()</code></a> on a mutex that is not locked by the
1063
+ current thread leads to undefined behaviour.</p>
1064
+ <div class="refsect3">
1065
+ <a name="id-1.4.3.7.15.6"></a><h4>Parameters</h4>
1066
+ <div class="informaltable"><table width="100%" border="0">
1067
+ <colgroup>
1068
+ <col width="150px" class="parameters_name">
1069
+ <col class="parameters_description">
1070
+ <col width="200px" class="parameters_annotations">
1071
+ </colgroup>
1072
+ <tbody><tr>
1073
+ <td class="parameter_name"><p>mutex</p></td>
1074
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a></p></td>
1075
+ <td class="parameter_annotations"> </td>
1076
+ </tr></tbody>
1077
+ </table></div>
1078
+ </div>
1079
+ </div>
1080
+ <hr>
1081
+ <div class="refsect2">
1082
+ <a name="G-LOCK-DEFINE:CAPS"></a><h3>G_LOCK_DEFINE()</h3>
1083
+ <pre class="programlisting">#define G_LOCK_DEFINE(name)
1084
+ </pre>
1085
+ <p>The <span class="type">G_LOCK_</span> macros provide a convenient interface to <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a>.
1086
+ <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()"><span class="type">G_LOCK_DEFINE</span></a> defines a lock. It can appear in any place where
1087
+ variable definitions may appear in programs, i.e. in the first block
1088
+ of a function or outside of functions. The <em class="parameter"><code>name</code></em>
1089
+ parameter will be
1090
+ mangled to get the name of the <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a>. This means that you
1091
+ can use names of existing variables as the parameter - e.g. the name
1092
+ of the variable you intend to protect with the lock. Look at our
1093
+ <code class="function">give_me_next_number()</code> example using the <a class="link" href="glib-Threads.html#G-LOCK:CAPS" title="G_LOCK()"><span class="type">G_LOCK</span></a> macros:</p>
1094
+ <p>Here is an example for using the <a class="link" href="glib-Threads.html#G-LOCK:CAPS" title="G_LOCK()"><span class="type">G_LOCK</span></a> convenience macros:</p>
1095
+ <div class="informalexample">
1096
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1097
+ <tbody>
1098
+ <tr>
1099
+ <td class="listing_lines" align="right"><pre>1
1100
+ 2
1101
+ 3
1102
+ 4
1103
+ 5
1104
+ 6
1105
+ 7
1106
+ 8
1107
+ 9
1108
+ 10
1109
+ 11
1110
+ 12
1111
+ 13
1112
+ 14</pre></td>
1113
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="glib-Threads.html#G-LOCK-DEFINE:CAPS">G_LOCK_DEFINE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">current_number</span><span class="symbol">);</span>
1114
+
1115
+ <span class="type">int</span>
1116
+ <span class="function">give_me_next_number</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
1117
+ <span class="cbracket">{</span>
1118
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="type">int</span><span class="normal"> current_number </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
1119
+ <span class="normal"> </span><span class="type">int</span><span class="normal"> ret_val</span><span class="symbol">;</span>
1120
+
1121
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#G-LOCK:CAPS">G_LOCK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">current_number</span><span class="symbol">);</span>
1122
+ <span class="normal"> ret_val </span><span class="symbol">=</span><span class="normal"> current_number </span><span class="symbol">=</span><span class="normal"> </span><span class="function">calc_next_number</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">current_number</span><span class="symbol">);</span>
1123
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#G-UNLOCK:CAPS">G_UNLOCK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">current_number</span><span class="symbol">);</span>
1124
+
1125
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> ret_val</span><span class="symbol">;</span>
1126
+ <span class="cbracket">}</span></pre></td>
1127
+ </tr>
1128
+ </tbody>
1129
+ </table>
1130
+ </div>
1131
+
1132
+ <p></p>
1133
+ <div class="refsect3">
1134
+ <a name="id-1.4.3.7.16.8"></a><h4>Parameters</h4>
1135
+ <div class="informaltable"><table width="100%" border="0">
1136
+ <colgroup>
1137
+ <col width="150px" class="parameters_name">
1138
+ <col class="parameters_description">
1139
+ <col width="200px" class="parameters_annotations">
1140
+ </colgroup>
1141
+ <tbody><tr>
1142
+ <td class="parameter_name"><p>name</p></td>
1143
+ <td class="parameter_description"><p>the name of the lock</p></td>
1144
+ <td class="parameter_annotations"> </td>
1145
+ </tr></tbody>
1146
+ </table></div>
1147
+ </div>
1148
+ </div>
1149
+ <hr>
1150
+ <div class="refsect2">
1151
+ <a name="G-LOCK-DEFINE-STATIC:CAPS"></a><h3>G_LOCK_DEFINE_STATIC()</h3>
1152
+ <pre class="programlisting">#define G_LOCK_DEFINE_STATIC(name)
1153
+ </pre>
1154
+ <p>This works like <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()"><span class="type">G_LOCK_DEFINE</span></a>, but it creates a static object.</p>
1155
+ <div class="refsect3">
1156
+ <a name="id-1.4.3.7.17.5"></a><h4>Parameters</h4>
1157
+ <div class="informaltable"><table width="100%" border="0">
1158
+ <colgroup>
1159
+ <col width="150px" class="parameters_name">
1160
+ <col class="parameters_description">
1161
+ <col width="200px" class="parameters_annotations">
1162
+ </colgroup>
1163
+ <tbody><tr>
1164
+ <td class="parameter_name"><p>name</p></td>
1165
+ <td class="parameter_description"><p>the name of the lock</p></td>
1166
+ <td class="parameter_annotations"> </td>
1167
+ </tr></tbody>
1168
+ </table></div>
1169
+ </div>
1170
+ </div>
1171
+ <hr>
1172
+ <div class="refsect2">
1173
+ <a name="G-LOCK-EXTERN:CAPS"></a><h3>G_LOCK_EXTERN()</h3>
1174
+ <pre class="programlisting">#define G_LOCK_EXTERN(name)
1175
+ </pre>
1176
+ <p>This declares a lock, that is defined with <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()"><span class="type">G_LOCK_DEFINE</span></a> in another
1177
+ module.</p>
1178
+ <div class="refsect3">
1179
+ <a name="id-1.4.3.7.18.5"></a><h4>Parameters</h4>
1180
+ <div class="informaltable"><table width="100%" border="0">
1181
+ <colgroup>
1182
+ <col width="150px" class="parameters_name">
1183
+ <col class="parameters_description">
1184
+ <col width="200px" class="parameters_annotations">
1185
+ </colgroup>
1186
+ <tbody><tr>
1187
+ <td class="parameter_name"><p>name</p></td>
1188
+ <td class="parameter_description"><p>the name of the lock</p></td>
1189
+ <td class="parameter_annotations"> </td>
1190
+ </tr></tbody>
1191
+ </table></div>
1192
+ </div>
1193
+ </div>
1194
+ <hr>
1195
+ <div class="refsect2">
1196
+ <a name="G-LOCK:CAPS"></a><h3>G_LOCK()</h3>
1197
+ <pre class="programlisting">#define G_LOCK(name)
1198
+ </pre>
1199
+ <p>Works like <a class="link" href="glib-Threads.html#g-mutex-lock" title="g_mutex_lock ()"><code class="function">g_mutex_lock()</code></a>, but for a lock defined with
1200
+ <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()"><span class="type">G_LOCK_DEFINE</span></a>.</p>
1201
+ <div class="refsect3">
1202
+ <a name="id-1.4.3.7.19.5"></a><h4>Parameters</h4>
1203
+ <div class="informaltable"><table width="100%" border="0">
1204
+ <colgroup>
1205
+ <col width="150px" class="parameters_name">
1206
+ <col class="parameters_description">
1207
+ <col width="200px" class="parameters_annotations">
1208
+ </colgroup>
1209
+ <tbody><tr>
1210
+ <td class="parameter_name"><p>name</p></td>
1211
+ <td class="parameter_description"><p>the name of the lock</p></td>
1212
+ <td class="parameter_annotations"> </td>
1213
+ </tr></tbody>
1214
+ </table></div>
1215
+ </div>
1216
+ </div>
1217
+ <hr>
1218
+ <div class="refsect2">
1219
+ <a name="G-TRYLOCK:CAPS"></a><h3>G_TRYLOCK()</h3>
1220
+ <pre class="programlisting">#define G_TRYLOCK(name)
1221
+ </pre>
1222
+ <p>Works like <a class="link" href="glib-Threads.html#g-mutex-trylock" title="g_mutex_trylock ()"><code class="function">g_mutex_trylock()</code></a>, but for a lock defined with
1223
+ <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()"><span class="type">G_LOCK_DEFINE</span></a>.</p>
1224
+ <div class="refsect3">
1225
+ <a name="id-1.4.3.7.20.5"></a><h4>Parameters</h4>
1226
+ <div class="informaltable"><table width="100%" border="0">
1227
+ <colgroup>
1228
+ <col width="150px" class="parameters_name">
1229
+ <col class="parameters_description">
1230
+ <col width="200px" class="parameters_annotations">
1231
+ </colgroup>
1232
+ <tbody><tr>
1233
+ <td class="parameter_name"><p>name</p></td>
1234
+ <td class="parameter_description"><p>the name of the lock</p></td>
1235
+ <td class="parameter_annotations"> </td>
1236
+ </tr></tbody>
1237
+ </table></div>
1238
+ </div>
1239
+ <div class="refsect3">
1240
+ <a name="id-1.4.3.7.20.6"></a><h4>Returns</h4>
1241
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>, if the lock could be locked.</p>
1242
+ <p></p>
1243
+ </div>
1244
+ </div>
1245
+ <hr>
1246
+ <div class="refsect2">
1247
+ <a name="G-UNLOCK:CAPS"></a><h3>G_UNLOCK()</h3>
1248
+ <pre class="programlisting">#define G_UNLOCK(name)
1249
+ </pre>
1250
+ <p>Works like <a class="link" href="glib-Threads.html#g-mutex-unlock" title="g_mutex_unlock ()"><code class="function">g_mutex_unlock()</code></a>, but for a lock defined with
1251
+ <a class="link" href="glib-Threads.html#G-LOCK-DEFINE:CAPS" title="G_LOCK_DEFINE()"><span class="type">G_LOCK_DEFINE</span></a>.</p>
1252
+ <div class="refsect3">
1253
+ <a name="id-1.4.3.7.21.5"></a><h4>Parameters</h4>
1254
+ <div class="informaltable"><table width="100%" border="0">
1255
+ <colgroup>
1256
+ <col width="150px" class="parameters_name">
1257
+ <col class="parameters_description">
1258
+ <col width="200px" class="parameters_annotations">
1259
+ </colgroup>
1260
+ <tbody><tr>
1261
+ <td class="parameter_name"><p>name</p></td>
1262
+ <td class="parameter_description"><p>the name of the lock</p></td>
1263
+ <td class="parameter_annotations"> </td>
1264
+ </tr></tbody>
1265
+ </table></div>
1266
+ </div>
1267
+ </div>
1268
+ <hr>
1269
+ <div class="refsect2">
1270
+ <a name="g-rec-mutex-init"></a><h3>g_rec_mutex_init ()</h3>
1271
+ <pre class="programlisting"><span class="returnvalue">void</span>
1272
+ g_rec_mutex_init (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> *rec_mutex</code></em>);</pre>
1273
+ <p>Initializes a <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> so that it can be used.</p>
1274
+ <p>This function is useful to initialize a recursive mutex
1275
+ that has been allocated on the stack, or as part of a larger
1276
+ structure.</p>
1277
+ <p>It is not necessary to initialise a recursive mutex that has been
1278
+ statically allocated.</p>
1279
+ <div class="informalexample">
1280
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1281
+ <tbody>
1282
+ <tr>
1283
+ <td class="listing_lines" align="right"><pre>1
1284
+ 2
1285
+ 3
1286
+ 4
1287
+ 5
1288
+ 6
1289
+ 7
1290
+ 8
1291
+ 9</pre></td>
1292
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="cbracket">{</span>
1293
+ <span class="normal"> </span><span class="usertype">GRecMutex</span><span class="normal"> m</span><span class="symbol">;</span>
1294
+ <span class="normal"> </span><span class="symbol">...</span>
1295
+ <span class="cbracket">}</span><span class="normal"> Blob</span><span class="symbol">;</span>
1296
+
1297
+ <span class="usertype">Blob</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">b</span><span class="symbol">;</span>
1298
+
1299
+ <span class="normal">b </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-new">g_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">Blob</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
1300
+ <span class="function"><a href="glib-Threads.html#g-rec-mutex-init">g_rec_mutex_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">b</span><span class="symbol">-&gt;</span><span class="normal">m</span><span class="symbol">);</span></pre></td>
1301
+ </tr>
1302
+ </tbody>
1303
+ </table>
1304
+ </div>
1305
+
1306
+ <p></p>
1307
+ <p>Calling <a class="link" href="glib-Threads.html#g-rec-mutex-init" title="g_rec_mutex_init ()"><code class="function">g_rec_mutex_init()</code></a> on an already initialized <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a>
1308
+ leads to undefined behaviour.</p>
1309
+ <p>To undo the effect of <a class="link" href="glib-Threads.html#g-rec-mutex-init" title="g_rec_mutex_init ()"><code class="function">g_rec_mutex_init()</code></a> when a recursive mutex
1310
+ is no longer needed, use <a class="link" href="glib-Threads.html#g-rec-mutex-clear" title="g_rec_mutex_clear ()"><code class="function">g_rec_mutex_clear()</code></a>.</p>
1311
+ <div class="refsect3">
1312
+ <a name="id-1.4.3.7.22.11"></a><h4>Parameters</h4>
1313
+ <div class="informaltable"><table width="100%" border="0">
1314
+ <colgroup>
1315
+ <col width="150px" class="parameters_name">
1316
+ <col class="parameters_description">
1317
+ <col width="200px" class="parameters_annotations">
1318
+ </colgroup>
1319
+ <tbody><tr>
1320
+ <td class="parameter_name"><p>rec_mutex</p></td>
1321
+ <td class="parameter_description"><p>an uninitialized <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a></p></td>
1322
+ <td class="parameter_annotations"> </td>
1323
+ </tr></tbody>
1324
+ </table></div>
1325
+ </div>
1326
+ <p class="since">Since 2.32</p>
1327
+ </div>
1328
+ <hr>
1329
+ <div class="refsect2">
1330
+ <a name="g-rec-mutex-clear"></a><h3>g_rec_mutex_clear ()</h3>
1331
+ <pre class="programlisting"><span class="returnvalue">void</span>
1332
+ g_rec_mutex_clear (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> *rec_mutex</code></em>);</pre>
1333
+ <p>Frees the resources allocated to a recursive mutex with
1334
+ <a class="link" href="glib-Threads.html#g-rec-mutex-init" title="g_rec_mutex_init ()"><code class="function">g_rec_mutex_init()</code></a>.</p>
1335
+ <p>This function should not be used with a <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> that has been
1336
+ statically allocated.</p>
1337
+ <p>Calling <a class="link" href="glib-Threads.html#g-rec-mutex-clear" title="g_rec_mutex_clear ()"><code class="function">g_rec_mutex_clear()</code></a> on a locked recursive mutex leads
1338
+ to undefined behaviour.</p>
1339
+ <p>Sine: 2.32</p>
1340
+ <div class="refsect3">
1341
+ <a name="id-1.4.3.7.23.8"></a><h4>Parameters</h4>
1342
+ <div class="informaltable"><table width="100%" border="0">
1343
+ <colgroup>
1344
+ <col width="150px" class="parameters_name">
1345
+ <col class="parameters_description">
1346
+ <col width="200px" class="parameters_annotations">
1347
+ </colgroup>
1348
+ <tbody><tr>
1349
+ <td class="parameter_name"><p>rec_mutex</p></td>
1350
+ <td class="parameter_description"><p>an initialized <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a></p></td>
1351
+ <td class="parameter_annotations"> </td>
1352
+ </tr></tbody>
1353
+ </table></div>
1354
+ </div>
1355
+ </div>
1356
+ <hr>
1357
+ <div class="refsect2">
1358
+ <a name="g-rec-mutex-lock"></a><h3>g_rec_mutex_lock ()</h3>
1359
+ <pre class="programlisting"><span class="returnvalue">void</span>
1360
+ g_rec_mutex_lock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> *rec_mutex</code></em>);</pre>
1361
+ <p>Locks <em class="parameter"><code>rec_mutex</code></em>
1362
+ . If <em class="parameter"><code>rec_mutex</code></em>
1363
+ is already locked by another
1364
+ thread, the current thread will block until <em class="parameter"><code>rec_mutex</code></em>
1365
+ is
1366
+ unlocked by the other thread. If <em class="parameter"><code>rec_mutex</code></em>
1367
+ is already locked
1368
+ by the current thread, the 'lock count' of <em class="parameter"><code>rec_mutex</code></em>
1369
+ is increased.
1370
+ The mutex will only become available again when it is unlocked
1371
+ as many times as it has been locked.</p>
1372
+ <div class="refsect3">
1373
+ <a name="id-1.4.3.7.24.5"></a><h4>Parameters</h4>
1374
+ <div class="informaltable"><table width="100%" border="0">
1375
+ <colgroup>
1376
+ <col width="150px" class="parameters_name">
1377
+ <col class="parameters_description">
1378
+ <col width="200px" class="parameters_annotations">
1379
+ </colgroup>
1380
+ <tbody><tr>
1381
+ <td class="parameter_name"><p>rec_mutex</p></td>
1382
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a></p></td>
1383
+ <td class="parameter_annotations"> </td>
1384
+ </tr></tbody>
1385
+ </table></div>
1386
+ </div>
1387
+ <p class="since">Since 2.32</p>
1388
+ </div>
1389
+ <hr>
1390
+ <div class="refsect2">
1391
+ <a name="g-rec-mutex-trylock"></a><h3>g_rec_mutex_trylock ()</h3>
1392
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
1393
+ g_rec_mutex_trylock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> *rec_mutex</code></em>);</pre>
1394
+ <p>Tries to lock <em class="parameter"><code>rec_mutex</code></em>
1395
+ . If <em class="parameter"><code>rec_mutex</code></em>
1396
+ is already locked
1397
+ by another thread, it immediately returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>. Otherwise
1398
+ it locks <em class="parameter"><code>rec_mutex</code></em>
1399
+ and returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>.</p>
1400
+ <div class="refsect3">
1401
+ <a name="id-1.4.3.7.25.5"></a><h4>Parameters</h4>
1402
+ <div class="informaltable"><table width="100%" border="0">
1403
+ <colgroup>
1404
+ <col width="150px" class="parameters_name">
1405
+ <col class="parameters_description">
1406
+ <col width="200px" class="parameters_annotations">
1407
+ </colgroup>
1408
+ <tbody><tr>
1409
+ <td class="parameter_name"><p>rec_mutex</p></td>
1410
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a></p></td>
1411
+ <td class="parameter_annotations"> </td>
1412
+ </tr></tbody>
1413
+ </table></div>
1414
+ </div>
1415
+ <div class="refsect3">
1416
+ <a name="id-1.4.3.7.25.6"></a><h4>Returns</h4>
1417
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>rec_mutex</code></em>
1418
+ could be locked</p>
1419
+ <p></p>
1420
+ </div>
1421
+ <p class="since">Since 2.32</p>
1422
+ </div>
1423
+ <hr>
1424
+ <div class="refsect2">
1425
+ <a name="g-rec-mutex-unlock"></a><h3>g_rec_mutex_unlock ()</h3>
1426
+ <pre class="programlisting"><span class="returnvalue">void</span>
1427
+ g_rec_mutex_unlock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> *rec_mutex</code></em>);</pre>
1428
+ <p>Unlocks <em class="parameter"><code>rec_mutex</code></em>
1429
+ . If another thread is blocked in a
1430
+ <a class="link" href="glib-Threads.html#g-rec-mutex-lock" title="g_rec_mutex_lock ()"><code class="function">g_rec_mutex_lock()</code></a> call for <em class="parameter"><code>rec_mutex</code></em>
1431
+ , it will become unblocked
1432
+ and can lock <em class="parameter"><code>rec_mutex</code></em>
1433
+ itself.</p>
1434
+ <p>Calling <a class="link" href="glib-Threads.html#g-rec-mutex-unlock" title="g_rec_mutex_unlock ()"><code class="function">g_rec_mutex_unlock()</code></a> on a recursive mutex that is not
1435
+ locked by the current thread leads to undefined behaviour.</p>
1436
+ <div class="refsect3">
1437
+ <a name="id-1.4.3.7.26.6"></a><h4>Parameters</h4>
1438
+ <div class="informaltable"><table width="100%" border="0">
1439
+ <colgroup>
1440
+ <col width="150px" class="parameters_name">
1441
+ <col class="parameters_description">
1442
+ <col width="200px" class="parameters_annotations">
1443
+ </colgroup>
1444
+ <tbody><tr>
1445
+ <td class="parameter_name"><p>rec_mutex</p></td>
1446
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a></p></td>
1447
+ <td class="parameter_annotations"> </td>
1448
+ </tr></tbody>
1449
+ </table></div>
1450
+ </div>
1451
+ <p class="since">Since 2.32</p>
1452
+ </div>
1453
+ <hr>
1454
+ <div class="refsect2">
1455
+ <a name="g-rw-lock-init"></a><h3>g_rw_lock_init ()</h3>
1456
+ <pre class="programlisting"><span class="returnvalue">void</span>
1457
+ g_rw_lock_init (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1458
+ <p>Initializes a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> so that it can be used.</p>
1459
+ <p>This function is useful to initialize a lock that has been
1460
+ allocated on the stack, or as part of a larger structure. It is not
1461
+ necessary to initialise a reader-writer lock that has been statically
1462
+ allocated.</p>
1463
+ <div class="informalexample">
1464
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1465
+ <tbody>
1466
+ <tr>
1467
+ <td class="listing_lines" align="right"><pre>1
1468
+ 2
1469
+ 3
1470
+ 4
1471
+ 5
1472
+ 6
1473
+ 7
1474
+ 8
1475
+ 9</pre></td>
1476
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="cbracket">{</span>
1477
+ <span class="normal"> </span><span class="usertype">GRWLock</span><span class="normal"> l</span><span class="symbol">;</span>
1478
+ <span class="normal"> </span><span class="symbol">...</span>
1479
+ <span class="cbracket">}</span><span class="normal"> Blob</span><span class="symbol">;</span>
1480
+
1481
+ <span class="usertype">Blob</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">b</span><span class="symbol">;</span>
1482
+
1483
+ <span class="normal">b </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-new">g_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">Blob</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
1484
+ <span class="function"><a href="glib-Threads.html#g-rw-lock-init">g_rw_lock_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">b</span><span class="symbol">-&gt;</span><span class="normal">l</span><span class="symbol">);</span></pre></td>
1485
+ </tr>
1486
+ </tbody>
1487
+ </table>
1488
+ </div>
1489
+
1490
+ <p></p>
1491
+ <p>To undo the effect of <a class="link" href="glib-Threads.html#g-rw-lock-init" title="g_rw_lock_init ()"><code class="function">g_rw_lock_init()</code></a> when a lock is no longer
1492
+ needed, use <a class="link" href="glib-Threads.html#g-rw-lock-clear" title="g_rw_lock_clear ()"><code class="function">g_rw_lock_clear()</code></a>.</p>
1493
+ <p>Calling <a class="link" href="glib-Threads.html#g-rw-lock-init" title="g_rw_lock_init ()"><code class="function">g_rw_lock_init()</code></a> on an already initialized <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> leads
1494
+ to undefined behaviour.</p>
1495
+ <div class="refsect3">
1496
+ <a name="id-1.4.3.7.27.10"></a><h4>Parameters</h4>
1497
+ <div class="informaltable"><table width="100%" border="0">
1498
+ <colgroup>
1499
+ <col width="150px" class="parameters_name">
1500
+ <col class="parameters_description">
1501
+ <col width="200px" class="parameters_annotations">
1502
+ </colgroup>
1503
+ <tbody><tr>
1504
+ <td class="parameter_name"><p>rw_lock</p></td>
1505
+ <td class="parameter_description"><p>an uninitialized <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1506
+ <td class="parameter_annotations"> </td>
1507
+ </tr></tbody>
1508
+ </table></div>
1509
+ </div>
1510
+ <p class="since">Since 2.32</p>
1511
+ </div>
1512
+ <hr>
1513
+ <div class="refsect2">
1514
+ <a name="g-rw-lock-clear"></a><h3>g_rw_lock_clear ()</h3>
1515
+ <pre class="programlisting"><span class="returnvalue">void</span>
1516
+ g_rw_lock_clear (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1517
+ <p>Frees the resources allocated to a lock with <a class="link" href="glib-Threads.html#g-rw-lock-init" title="g_rw_lock_init ()"><code class="function">g_rw_lock_init()</code></a>.</p>
1518
+ <p>This function should not be used with a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> that has been
1519
+ statically allocated.</p>
1520
+ <p>Calling <a class="link" href="glib-Threads.html#g-rw-lock-clear" title="g_rw_lock_clear ()"><code class="function">g_rw_lock_clear()</code></a> when any thread holds the lock
1521
+ leads to undefined behaviour.</p>
1522
+ <p>Sine: 2.32</p>
1523
+ <div class="refsect3">
1524
+ <a name="id-1.4.3.7.28.8"></a><h4>Parameters</h4>
1525
+ <div class="informaltable"><table width="100%" border="0">
1526
+ <colgroup>
1527
+ <col width="150px" class="parameters_name">
1528
+ <col class="parameters_description">
1529
+ <col width="200px" class="parameters_annotations">
1530
+ </colgroup>
1531
+ <tbody><tr>
1532
+ <td class="parameter_name"><p>rw_lock</p></td>
1533
+ <td class="parameter_description"><p>an initialized <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1534
+ <td class="parameter_annotations"> </td>
1535
+ </tr></tbody>
1536
+ </table></div>
1537
+ </div>
1538
+ </div>
1539
+ <hr>
1540
+ <div class="refsect2">
1541
+ <a name="g-rw-lock-writer-lock"></a><h3>g_rw_lock_writer_lock ()</h3>
1542
+ <pre class="programlisting"><span class="returnvalue">void</span>
1543
+ g_rw_lock_writer_lock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1544
+ <p>Obtain a write lock on <em class="parameter"><code>rw_lock</code></em>
1545
+ . If any thread already holds
1546
+ a read or write lock on <em class="parameter"><code>rw_lock</code></em>
1547
+ , the current thread will block
1548
+ until all other threads have dropped their locks on <em class="parameter"><code>rw_lock</code></em>
1549
+ .</p>
1550
+ <div class="refsect3">
1551
+ <a name="id-1.4.3.7.29.5"></a><h4>Parameters</h4>
1552
+ <div class="informaltable"><table width="100%" border="0">
1553
+ <colgroup>
1554
+ <col width="150px" class="parameters_name">
1555
+ <col class="parameters_description">
1556
+ <col width="200px" class="parameters_annotations">
1557
+ </colgroup>
1558
+ <tbody><tr>
1559
+ <td class="parameter_name"><p>rw_lock</p></td>
1560
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1561
+ <td class="parameter_annotations"> </td>
1562
+ </tr></tbody>
1563
+ </table></div>
1564
+ </div>
1565
+ <p class="since">Since 2.32</p>
1566
+ </div>
1567
+ <hr>
1568
+ <div class="refsect2">
1569
+ <a name="g-rw-lock-writer-trylock"></a><h3>g_rw_lock_writer_trylock ()</h3>
1570
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
1571
+ g_rw_lock_writer_trylock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1572
+ <p>Tries to obtain a write lock on <em class="parameter"><code>rw_lock</code></em>
1573
+ . If any other thread holds
1574
+ a read or write lock on <em class="parameter"><code>rw_lock</code></em>
1575
+ , it immediately returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>.
1576
+ Otherwise it locks <em class="parameter"><code>rw_lock</code></em>
1577
+ and returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>.</p>
1578
+ <div class="refsect3">
1579
+ <a name="id-1.4.3.7.30.5"></a><h4>Parameters</h4>
1580
+ <div class="informaltable"><table width="100%" border="0">
1581
+ <colgroup>
1582
+ <col width="150px" class="parameters_name">
1583
+ <col class="parameters_description">
1584
+ <col width="200px" class="parameters_annotations">
1585
+ </colgroup>
1586
+ <tbody><tr>
1587
+ <td class="parameter_name"><p>rw_lock</p></td>
1588
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1589
+ <td class="parameter_annotations"> </td>
1590
+ </tr></tbody>
1591
+ </table></div>
1592
+ </div>
1593
+ <div class="refsect3">
1594
+ <a name="id-1.4.3.7.30.6"></a><h4>Returns</h4>
1595
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>rw_lock</code></em>
1596
+ could be locked</p>
1597
+ <p></p>
1598
+ </div>
1599
+ <p class="since">Since 2.32</p>
1600
+ </div>
1601
+ <hr>
1602
+ <div class="refsect2">
1603
+ <a name="g-rw-lock-writer-unlock"></a><h3>g_rw_lock_writer_unlock ()</h3>
1604
+ <pre class="programlisting"><span class="returnvalue">void</span>
1605
+ g_rw_lock_writer_unlock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1606
+ <p>Release a write lock on <em class="parameter"><code>rw_lock</code></em>
1607
+ .</p>
1608
+ <p>Calling <a class="link" href="glib-Threads.html#g-rw-lock-writer-unlock" title="g_rw_lock_writer_unlock ()"><code class="function">g_rw_lock_writer_unlock()</code></a> on a lock that is not held
1609
+ by the current thread leads to undefined behaviour.</p>
1610
+ <div class="refsect3">
1611
+ <a name="id-1.4.3.7.31.6"></a><h4>Parameters</h4>
1612
+ <div class="informaltable"><table width="100%" border="0">
1613
+ <colgroup>
1614
+ <col width="150px" class="parameters_name">
1615
+ <col class="parameters_description">
1616
+ <col width="200px" class="parameters_annotations">
1617
+ </colgroup>
1618
+ <tbody><tr>
1619
+ <td class="parameter_name"><p>rw_lock</p></td>
1620
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1621
+ <td class="parameter_annotations"> </td>
1622
+ </tr></tbody>
1623
+ </table></div>
1624
+ </div>
1625
+ <p class="since">Since 2.32</p>
1626
+ </div>
1627
+ <hr>
1628
+ <div class="refsect2">
1629
+ <a name="g-rw-lock-reader-lock"></a><h3>g_rw_lock_reader_lock ()</h3>
1630
+ <pre class="programlisting"><span class="returnvalue">void</span>
1631
+ g_rw_lock_reader_lock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1632
+ <p>Obtain a read lock on <em class="parameter"><code>rw_lock</code></em>
1633
+ . If another thread currently holds
1634
+ the write lock on <em class="parameter"><code>rw_lock</code></em>
1635
+ or blocks waiting for it, the current
1636
+ thread will block. Read locks can be taken recursively.</p>
1637
+ <p>It is implementation-defined how many threads are allowed to
1638
+ hold read locks on the same lock simultaneously.</p>
1639
+ <div class="refsect3">
1640
+ <a name="id-1.4.3.7.32.6"></a><h4>Parameters</h4>
1641
+ <div class="informaltable"><table width="100%" border="0">
1642
+ <colgroup>
1643
+ <col width="150px" class="parameters_name">
1644
+ <col class="parameters_description">
1645
+ <col width="200px" class="parameters_annotations">
1646
+ </colgroup>
1647
+ <tbody><tr>
1648
+ <td class="parameter_name"><p>rw_lock</p></td>
1649
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1650
+ <td class="parameter_annotations"> </td>
1651
+ </tr></tbody>
1652
+ </table></div>
1653
+ </div>
1654
+ <p class="since">Since 2.32</p>
1655
+ </div>
1656
+ <hr>
1657
+ <div class="refsect2">
1658
+ <a name="g-rw-lock-reader-trylock"></a><h3>g_rw_lock_reader_trylock ()</h3>
1659
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
1660
+ g_rw_lock_reader_trylock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1661
+ <p>Tries to obtain a read lock on <em class="parameter"><code>rw_lock</code></em>
1662
+ and returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if
1663
+ the read lock was successfully obtained. Otherwise it
1664
+ returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>.</p>
1665
+ <div class="refsect3">
1666
+ <a name="id-1.4.3.7.33.5"></a><h4>Parameters</h4>
1667
+ <div class="informaltable"><table width="100%" border="0">
1668
+ <colgroup>
1669
+ <col width="150px" class="parameters_name">
1670
+ <col class="parameters_description">
1671
+ <col width="200px" class="parameters_annotations">
1672
+ </colgroup>
1673
+ <tbody><tr>
1674
+ <td class="parameter_name"><p>rw_lock</p></td>
1675
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1676
+ <td class="parameter_annotations"> </td>
1677
+ </tr></tbody>
1678
+ </table></div>
1679
+ </div>
1680
+ <div class="refsect3">
1681
+ <a name="id-1.4.3.7.33.6"></a><h4>Returns</h4>
1682
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>rw_lock</code></em>
1683
+ could be locked</p>
1684
+ <p></p>
1685
+ </div>
1686
+ <p class="since">Since 2.32</p>
1687
+ </div>
1688
+ <hr>
1689
+ <div class="refsect2">
1690
+ <a name="g-rw-lock-reader-unlock"></a><h3>g_rw_lock_reader_unlock ()</h3>
1691
+ <pre class="programlisting"><span class="returnvalue">void</span>
1692
+ g_rw_lock_reader_unlock (<em class="parameter"><code><a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> *rw_lock</code></em>);</pre>
1693
+ <p>Release a read lock on <em class="parameter"><code>rw_lock</code></em>
1694
+ .</p>
1695
+ <p>Calling <a class="link" href="glib-Threads.html#g-rw-lock-reader-unlock" title="g_rw_lock_reader_unlock ()"><code class="function">g_rw_lock_reader_unlock()</code></a> on a lock that is not held
1696
+ by the current thread leads to undefined behaviour.</p>
1697
+ <div class="refsect3">
1698
+ <a name="id-1.4.3.7.34.6"></a><h4>Parameters</h4>
1699
+ <div class="informaltable"><table width="100%" border="0">
1700
+ <colgroup>
1701
+ <col width="150px" class="parameters_name">
1702
+ <col class="parameters_description">
1703
+ <col width="200px" class="parameters_annotations">
1704
+ </colgroup>
1705
+ <tbody><tr>
1706
+ <td class="parameter_name"><p>rw_lock</p></td>
1707
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a></p></td>
1708
+ <td class="parameter_annotations"> </td>
1709
+ </tr></tbody>
1710
+ </table></div>
1711
+ </div>
1712
+ <p class="since">Since 2.32</p>
1713
+ </div>
1714
+ <hr>
1715
+ <div class="refsect2">
1716
+ <a name="g-cond-init"></a><h3>g_cond_init ()</h3>
1717
+ <pre class="programlisting"><span class="returnvalue">void</span>
1718
+ g_cond_init (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>);</pre>
1719
+ <p>Initialises a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> so that it can be used.</p>
1720
+ <p>This function is useful to initialise a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> that has been
1721
+ allocated as part of a larger structure. It is not necessary to
1722
+ initialise a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> that has been statically allocated.</p>
1723
+ <p>To undo the effect of <a class="link" href="glib-Threads.html#g-cond-init" title="g_cond_init ()"><code class="function">g_cond_init()</code></a> when a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> is no longer
1724
+ needed, use <a class="link" href="glib-Threads.html#g-cond-clear" title="g_cond_clear ()"><code class="function">g_cond_clear()</code></a>.</p>
1725
+ <p>Calling <a class="link" href="glib-Threads.html#g-cond-init" title="g_cond_init ()"><code class="function">g_cond_init()</code></a> on an already-initialised <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> leads
1726
+ to undefined behaviour.</p>
1727
+ <div class="refsect3">
1728
+ <a name="id-1.4.3.7.35.8"></a><h4>Parameters</h4>
1729
+ <div class="informaltable"><table width="100%" border="0">
1730
+ <colgroup>
1731
+ <col width="150px" class="parameters_name">
1732
+ <col class="parameters_description">
1733
+ <col width="200px" class="parameters_annotations">
1734
+ </colgroup>
1735
+ <tbody><tr>
1736
+ <td class="parameter_name"><p>cond</p></td>
1737
+ <td class="parameter_description"><p>an uninitialized <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
1738
+ <td class="parameter_annotations"> </td>
1739
+ </tr></tbody>
1740
+ </table></div>
1741
+ </div>
1742
+ <p class="since">Since 2.32</p>
1743
+ </div>
1744
+ <hr>
1745
+ <div class="refsect2">
1746
+ <a name="g-cond-clear"></a><h3>g_cond_clear ()</h3>
1747
+ <pre class="programlisting"><span class="returnvalue">void</span>
1748
+ g_cond_clear (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>);</pre>
1749
+ <p>Frees the resources allocated to a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> with <a class="link" href="glib-Threads.html#g-cond-init" title="g_cond_init ()"><code class="function">g_cond_init()</code></a>.</p>
1750
+ <p>This function should not be used with a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> that has been
1751
+ statically allocated.</p>
1752
+ <p>Calling <a class="link" href="glib-Threads.html#g-cond-clear" title="g_cond_clear ()"><code class="function">g_cond_clear()</code></a> for a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> on which threads are
1753
+ blocking leads to undefined behaviour.</p>
1754
+ <div class="refsect3">
1755
+ <a name="id-1.4.3.7.36.7"></a><h4>Parameters</h4>
1756
+ <div class="informaltable"><table width="100%" border="0">
1757
+ <colgroup>
1758
+ <col width="150px" class="parameters_name">
1759
+ <col class="parameters_description">
1760
+ <col width="200px" class="parameters_annotations">
1761
+ </colgroup>
1762
+ <tbody><tr>
1763
+ <td class="parameter_name"><p>cond</p></td>
1764
+ <td class="parameter_description"><p>an initialised <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
1765
+ <td class="parameter_annotations"> </td>
1766
+ </tr></tbody>
1767
+ </table></div>
1768
+ </div>
1769
+ <p class="since">Since 2.32</p>
1770
+ </div>
1771
+ <hr>
1772
+ <div class="refsect2">
1773
+ <a name="g-cond-wait"></a><h3>g_cond_wait ()</h3>
1774
+ <pre class="programlisting"><span class="returnvalue">void</span>
1775
+ g_cond_wait (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>,
1776
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
1777
+ <p>Atomically releases <em class="parameter"><code>mutex</code></em>
1778
+ and waits until <em class="parameter"><code>cond</code></em>
1779
+ is signalled.
1780
+ When this function returns, <em class="parameter"><code>mutex</code></em>
1781
+ is locked again and owned by the
1782
+ calling thread.</p>
1783
+ <p>When using condition variables, it is possible that a spurious wakeup
1784
+ may occur (ie: <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a> returns even though <a class="link" href="glib-Threads.html#g-cond-signal" title="g_cond_signal ()"><code class="function">g_cond_signal()</code></a> was
1785
+ not called). It's also possible that a stolen wakeup may occur.
1786
+ This is when <a class="link" href="glib-Threads.html#g-cond-signal" title="g_cond_signal ()"><code class="function">g_cond_signal()</code></a> is called, but another thread acquires
1787
+ <em class="parameter"><code>mutex</code></em>
1788
+ before this thread and modifies the state of the program in
1789
+ such a way that when <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a> is able to return, the expected
1790
+ condition is no longer met.</p>
1791
+ <p>For this reason, <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a> must always be used in a loop. See
1792
+ the documentation for <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> for a complete example.</p>
1793
+ <div class="refsect3">
1794
+ <a name="id-1.4.3.7.37.7"></a><h4>Parameters</h4>
1795
+ <div class="informaltable"><table width="100%" border="0">
1796
+ <colgroup>
1797
+ <col width="150px" class="parameters_name">
1798
+ <col class="parameters_description">
1799
+ <col width="200px" class="parameters_annotations">
1800
+ </colgroup>
1801
+ <tbody>
1802
+ <tr>
1803
+ <td class="parameter_name"><p>cond</p></td>
1804
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
1805
+ <td class="parameter_annotations"> </td>
1806
+ </tr>
1807
+ <tr>
1808
+ <td class="parameter_name"><p>mutex</p></td>
1809
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> that is currently locked</p></td>
1810
+ <td class="parameter_annotations"> </td>
1811
+ </tr>
1812
+ </tbody>
1813
+ </table></div>
1814
+ </div>
1815
+ </div>
1816
+ <hr>
1817
+ <div class="refsect2">
1818
+ <a name="g-cond-timed-wait"></a><h3>g_cond_timed_wait ()</h3>
1819
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
1820
+ g_cond_timed_wait (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>,
1821
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>,
1822
+ <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *abs_time</code></em>);</pre>
1823
+ <div class="warning">
1824
+ <p><code class="literal">g_cond_timed_wait</code> has been deprecated since version 2.32 and should not be used in newly-written code.</p>
1825
+ <p>Use <a class="link" href="glib-Threads.html#g-cond-wait-until" title="g_cond_wait_until ()"><code class="function">g_cond_wait_until()</code></a> instead.</p>
1826
+ </div>
1827
+ <p>Waits until this thread is woken up on <em class="parameter"><code>cond</code></em>
1828
+ , but not longer than
1829
+ until the time specified by <em class="parameter"><code>abs_time</code></em>
1830
+ . The <em class="parameter"><code>mutex</code></em>
1831
+ is unlocked before
1832
+ falling asleep and locked again before resuming.</p>
1833
+ <p>If <em class="parameter"><code>abs_time</code></em>
1834
+ is <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, <a class="link" href="glib-Threads.html#g-cond-timed-wait" title="g_cond_timed_wait ()"><code class="function">g_cond_timed_wait()</code></a> acts like <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a>.</p>
1835
+ <p>This function can be used even if <a class="link" href="glib-Deprecated-Thread-APIs.html#g-thread-init" title="g_thread_init ()"><code class="function">g_thread_init()</code></a> has not yet been
1836
+ called, and, in that case, will immediately return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>.</p>
1837
+ <p>To easily calculate <em class="parameter"><code>abs_time</code></em>
1838
+ a combination of <a class="link" href="glib-Date-and-Time-Functions.html#g-get-current-time" title="g_get_current_time ()"><code class="function">g_get_current_time()</code></a>
1839
+ and <a class="link" href="glib-Date-and-Time-Functions.html#g-time-val-add" title="g_time_val_add ()"><code class="function">g_time_val_add()</code></a> can be used.</p>
1840
+ <div class="refsect3">
1841
+ <a name="id-1.4.3.7.38.9"></a><h4>Parameters</h4>
1842
+ <div class="informaltable"><table width="100%" border="0">
1843
+ <colgroup>
1844
+ <col width="150px" class="parameters_name">
1845
+ <col class="parameters_description">
1846
+ <col width="200px" class="parameters_annotations">
1847
+ </colgroup>
1848
+ <tbody>
1849
+ <tr>
1850
+ <td class="parameter_name"><p>cond</p></td>
1851
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
1852
+ <td class="parameter_annotations"> </td>
1853
+ </tr>
1854
+ <tr>
1855
+ <td class="parameter_name"><p>mutex</p></td>
1856
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> that is currently locked</p></td>
1857
+ <td class="parameter_annotations"> </td>
1858
+ </tr>
1859
+ <tr>
1860
+ <td class="parameter_name"><p>abs_time</p></td>
1861
+ <td class="parameter_description"><p>a <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a>, determining the final time</p></td>
1862
+ <td class="parameter_annotations"> </td>
1863
+ </tr>
1864
+ </tbody>
1865
+ </table></div>
1866
+ </div>
1867
+ <div class="refsect3">
1868
+ <a name="id-1.4.3.7.38.10"></a><h4>Returns</h4>
1869
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>cond</code></em>
1870
+ was signalled, or <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> on timeout</p>
1871
+ <p></p>
1872
+ </div>
1873
+ </div>
1874
+ <hr>
1875
+ <div class="refsect2">
1876
+ <a name="g-cond-wait-until"></a><h3>g_cond_wait_until ()</h3>
1877
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
1878
+ g_cond_wait_until (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>,
1879
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> *mutex</code></em>,
1880
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint64" title="gint64"><span class="type">gint64</span></a> end_time</code></em>);</pre>
1881
+ <p>Waits until either <em class="parameter"><code>cond</code></em>
1882
+ is signalled or <em class="parameter"><code>end_time</code></em>
1883
+ has passed.</p>
1884
+ <p>As with <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a> it is possible that a spurious or stolen wakeup
1885
+ could occur. For that reason, waiting on a condition variable should
1886
+ always be in a loop, based on an explicitly-checked predicate.</p>
1887
+ <p><a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> is returned if the condition variable was signalled (or in the
1888
+ case of a spurious wakeup). <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> is returned if <em class="parameter"><code>end_time</code></em>
1889
+ has
1890
+ passed.</p>
1891
+ <p>The following code shows how to correctly perform a timed wait on a
1892
+ condition variable (extending the example presented in the
1893
+ documentation for <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a>):</p>
1894
+ <div class="informalexample">
1895
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1896
+ <tbody>
1897
+ <tr>
1898
+ <td class="listing_lines" align="right"><pre>1
1899
+ 2
1900
+ 3
1901
+ 4
1902
+ 5
1903
+ 6
1904
+ 7
1905
+ 8
1906
+ 9
1907
+ 10
1908
+ 11
1909
+ 12
1910
+ 13
1911
+ 14
1912
+ 15
1913
+ 16
1914
+ 17
1915
+ 18
1916
+ 19
1917
+ 20
1918
+ 21
1919
+ 22
1920
+ 23
1921
+ 24
1922
+ 25</pre></td>
1923
+ <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-Basic-Types.html#gpointer">gpointer</a></span>
1924
+ <span class="function">pop_data_timed</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
1925
+ <span class="cbracket">{</span>
1926
+ <span class="normal"> </span><span class="usertype">gint64</span><span class="normal"> end_time</span><span class="symbol">;</span>
1927
+ <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">;</span>
1928
+
1929
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-lock">g_mutex_lock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
1930
+
1931
+ <span class="normal"> end_time </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Date-and-Time-Functions.html#g-get-monotonic-time">g_get_monotonic_time</a></span><span class="normal"> </span><span class="symbol">()</span><span class="normal"> </span><span class="symbol">+</span><span class="normal"> </span><span class="number">5</span><span class="normal"> </span><span class="symbol">*</span><span class="normal"> <a href="glib-GDateTime.html#G-TIME-SPAN-SECOND:CAPS">G_TIME_SPAN_SECOND</a></span><span class="symbol">;</span>
1932
+ <span class="normal"> </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">current_data</span><span class="symbol">)</span>
1933
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="glib-Threads.html#g-cond-wait-until">g_cond_wait_until</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_cond</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">data_mutex</span><span class="symbol">,</span><span class="normal"> end_time</span><span class="symbol">))</span>
1934
+ <span class="normal"> </span><span class="cbracket">{</span>
1935
+ <span class="normal"> </span><span class="comment">// timeout has passed.</span>
1936
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-unlock">g_mutex_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
1937
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
1938
+ <span class="normal"> </span><span class="cbracket">}</span>
1939
+
1940
+ <span class="normal"> </span><span class="comment">// there is data for us</span>
1941
+ <span class="normal"> data </span><span class="symbol">=</span><span class="normal"> current_data</span><span class="symbol">;</span>
1942
+ <span class="normal"> current_data </span><span class="symbol">=</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
1943
+
1944
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-unlock">g_mutex_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
1945
+
1946
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> data</span><span class="symbol">;</span>
1947
+ <span class="cbracket">}</span></pre></td>
1948
+ </tr>
1949
+ </tbody>
1950
+ </table>
1951
+ </div>
1952
+
1953
+ <p></p>
1954
+ <p>Notice that the end time is calculated once, before entering the
1955
+ loop and reused. This is the motivation behind the use of absolute
1956
+ time on this API -- if a relative time of 5 seconds were passed
1957
+ directly to the call and a spurious wakeup occurred, the program would
1958
+ have to start over waiting again (which would lead to a total wait
1959
+ time of more than 5 seconds).</p>
1960
+ <div class="refsect3">
1961
+ <a name="id-1.4.3.7.39.11"></a><h4>Parameters</h4>
1962
+ <div class="informaltable"><table width="100%" border="0">
1963
+ <colgroup>
1964
+ <col width="150px" class="parameters_name">
1965
+ <col class="parameters_description">
1966
+ <col width="200px" class="parameters_annotations">
1967
+ </colgroup>
1968
+ <tbody>
1969
+ <tr>
1970
+ <td class="parameter_name"><p>cond</p></td>
1971
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
1972
+ <td class="parameter_annotations"> </td>
1973
+ </tr>
1974
+ <tr>
1975
+ <td class="parameter_name"><p>mutex</p></td>
1976
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> that is currently locked</p></td>
1977
+ <td class="parameter_annotations"> </td>
1978
+ </tr>
1979
+ <tr>
1980
+ <td class="parameter_name"><p>end_time</p></td>
1981
+ <td class="parameter_description"><p>the monotonic time to wait until</p></td>
1982
+ <td class="parameter_annotations"> </td>
1983
+ </tr>
1984
+ </tbody>
1985
+ </table></div>
1986
+ </div>
1987
+ <div class="refsect3">
1988
+ <a name="id-1.4.3.7.39.12"></a><h4>Returns</h4>
1989
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> on a signal, <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> on a timeout</p>
1990
+ <p></p>
1991
+ </div>
1992
+ <p class="since">Since 2.32</p>
1993
+ </div>
1994
+ <hr>
1995
+ <div class="refsect2">
1996
+ <a name="g-cond-signal"></a><h3>g_cond_signal ()</h3>
1997
+ <pre class="programlisting"><span class="returnvalue">void</span>
1998
+ g_cond_signal (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>);</pre>
1999
+ <p>If threads are waiting for <em class="parameter"><code>cond</code></em>
2000
+ , at least one of them is unblocked.
2001
+ If no threads are waiting for <em class="parameter"><code>cond</code></em>
2002
+ , this function has no effect.
2003
+ It is good practice to hold the same lock as the waiting thread
2004
+ while calling this function, though not required.</p>
2005
+ <div class="refsect3">
2006
+ <a name="id-1.4.3.7.40.5"></a><h4>Parameters</h4>
2007
+ <div class="informaltable"><table width="100%" border="0">
2008
+ <colgroup>
2009
+ <col width="150px" class="parameters_name">
2010
+ <col class="parameters_description">
2011
+ <col width="200px" class="parameters_annotations">
2012
+ </colgroup>
2013
+ <tbody><tr>
2014
+ <td class="parameter_name"><p>cond</p></td>
2015
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
2016
+ <td class="parameter_annotations"> </td>
2017
+ </tr></tbody>
2018
+ </table></div>
2019
+ </div>
2020
+ </div>
2021
+ <hr>
2022
+ <div class="refsect2">
2023
+ <a name="g-cond-broadcast"></a><h3>g_cond_broadcast ()</h3>
2024
+ <pre class="programlisting"><span class="returnvalue">void</span>
2025
+ g_cond_broadcast (<em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> *cond</code></em>);</pre>
2026
+ <p>If threads are waiting for <em class="parameter"><code>cond</code></em>
2027
+ , all of them are unblocked.
2028
+ If no threads are waiting for <em class="parameter"><code>cond</code></em>
2029
+ , this function has no effect.
2030
+ It is good practice to lock the same mutex as the waiting threads
2031
+ while calling this function, though not required.</p>
2032
+ <div class="refsect3">
2033
+ <a name="id-1.4.3.7.41.5"></a><h4>Parameters</h4>
2034
+ <div class="informaltable"><table width="100%" border="0">
2035
+ <colgroup>
2036
+ <col width="150px" class="parameters_name">
2037
+ <col class="parameters_description">
2038
+ <col width="200px" class="parameters_annotations">
2039
+ </colgroup>
2040
+ <tbody><tr>
2041
+ <td class="parameter_name"><p>cond</p></td>
2042
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a></p></td>
2043
+ <td class="parameter_annotations"> </td>
2044
+ </tr></tbody>
2045
+ </table></div>
2046
+ </div>
2047
+ </div>
2048
+ <hr>
2049
+ <div class="refsect2">
2050
+ <a name="G-PRIVATE-INIT:CAPS"></a><h3>G_PRIVATE_INIT()</h3>
2051
+ <pre class="programlisting">#define G_PRIVATE_INIT(notify)
2052
+ </pre>
2053
+ <p>A macro to assist with the static initialisation of a <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a>.</p>
2054
+ <p>This macro is useful for the case that a <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> function
2055
+ should be associated the key. This is needed when the key will be
2056
+ used to point at memory that should be deallocated when the thread
2057
+ exits.</p>
2058
+ <p>Additionally, the <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> will also be called on the previous
2059
+ value stored in the key when <a class="link" href="glib-Threads.html#g-private-replace" title="g_private_replace ()"><code class="function">g_private_replace()</code></a> is used.</p>
2060
+ <p>If no <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> is needed, then use of this macro is not
2061
+ required -- if the <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> is declared in static scope then it will
2062
+ be properly initialised by default (ie: to all zeros). See the
2063
+ examples below.</p>
2064
+ <div class="informalexample">
2065
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2066
+ <tbody>
2067
+ <tr>
2068
+ <td class="listing_lines" align="right"><pre>1
2069
+ 2
2070
+ 3
2071
+ 4
2072
+ 5
2073
+ 6
2074
+ 7
2075
+ 8
2076
+ 9
2077
+ 10
2078
+ 11
2079
+ 12
2080
+ 13
2081
+ 14
2082
+ 15
2083
+ 16
2084
+ 17
2085
+ 18
2086
+ 19
2087
+ 20
2088
+ 21
2089
+ 22
2090
+ 23
2091
+ 24
2092
+ 25
2093
+ 26
2094
+ 27
2095
+ 28
2096
+ 29</pre></td>
2097
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="usertype">GPrivate</span><span class="normal"> name_key </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Threads.html#G-PRIVATE-INIT:CAPS">G_PRIVATE_INIT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span><span class="symbol">);</span>
2098
+
2099
+ <span class="comment">// return value should not be freed</span>
2100
+ <span class="keyword">const</span><span class="normal"> <a href="glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span>
2101
+ <span class="function">get_local_name</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
2102
+ <span class="cbracket">{</span>
2103
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-private-get">g_private_get</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">name_key</span><span class="symbol">);</span>
2104
+ <span class="cbracket">}</span>
2105
+
2106
+ <span class="type">void</span>
2107
+ <span class="function">set_local_name</span><span class="normal"> </span><span class="symbol">(</span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">)</span>
2108
+ <span class="cbracket">{</span>
2109
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-private-replace">g_private_replace</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">name_key</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">name</span><span class="symbol">));</span>
2110
+ <span class="cbracket">}</span>
2111
+
2112
+
2113
+ <span class="keyword">static</span><span class="normal"> </span><span class="usertype">GPrivate</span><span class="normal"> count_key</span><span class="symbol">;</span><span class="normal"> </span><span class="comment">// no free function</span>
2114
+
2115
+ <span class="normal"><a href="glib-Basic-Types.html#gint">gint</a></span>
2116
+ <span class="function">get_local_count</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
2117
+ <span class="cbracket">{</span>
2118
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="glib-Type-Conversion-Macros.html#GPOINTER-TO-INT:CAPS">GPOINTER_TO_INT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-Threads.html#g-private-get">g_private_get</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">count_key</span><span class="symbol">));</span>
2119
+ <span class="cbracket">}</span>
2120
+
2121
+ <span class="type">void</span>
2122
+ <span class="function">set_local_count</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gint</span><span class="normal"> count</span><span class="symbol">)</span>
2123
+ <span class="cbracket">{</span>
2124
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-private-set">g_private_set</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">count_key</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="glib-Type-Conversion-Macros.html#GINT-TO-POINTER:CAPS">GINT_TO_POINTER</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">count</span><span class="symbol">));</span>
2125
+ <span class="cbracket">}</span></pre></td>
2126
+ </tr>
2127
+ </tbody>
2128
+ </table>
2129
+ </div>
2130
+
2131
+ <p></p>
2132
+ <div class="refsect3">
2133
+ <a name="id-1.4.3.7.42.10"></a><h4>Parameters</h4>
2134
+ <div class="informaltable"><table width="100%" border="0">
2135
+ <colgroup>
2136
+ <col width="150px" class="parameters_name">
2137
+ <col class="parameters_description">
2138
+ <col width="200px" class="parameters_annotations">
2139
+ </colgroup>
2140
+ <tbody><tr>
2141
+ <td class="parameter_name"><p>notify</p></td>
2142
+ <td class="parameter_description"><p>a <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a></p></td>
2143
+ <td class="parameter_annotations"> </td>
2144
+ </tr></tbody>
2145
+ </table></div>
2146
+ </div>
2147
+ <p class="since">Since 2.32</p>
2148
+ </div>
2149
+ <hr>
2150
+ <div class="refsect2">
2151
+ <a name="g-private-get"></a><h3>g_private_get ()</h3>
2152
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>
2153
+ g_private_get (<em class="parameter"><code><a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> *key</code></em>);</pre>
2154
+ <p>Returns the current value of the thread local variable <em class="parameter"><code>key</code></em>
2155
+ .</p>
2156
+ <p>If the value has not yet been set in this thread, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is returned.
2157
+ Values are never copied between threads (when a new thread is
2158
+ created, for example).</p>
2159
+ <div class="refsect3">
2160
+ <a name="id-1.4.3.7.43.6"></a><h4>Parameters</h4>
2161
+ <div class="informaltable"><table width="100%" border="0">
2162
+ <colgroup>
2163
+ <col width="150px" class="parameters_name">
2164
+ <col class="parameters_description">
2165
+ <col width="200px" class="parameters_annotations">
2166
+ </colgroup>
2167
+ <tbody><tr>
2168
+ <td class="parameter_name"><p>key</p></td>
2169
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a></p></td>
2170
+ <td class="parameter_annotations"> </td>
2171
+ </tr></tbody>
2172
+ </table></div>
2173
+ </div>
2174
+ <div class="refsect3">
2175
+ <a name="id-1.4.3.7.43.7"></a><h4>Returns</h4>
2176
+ <p> the thread-local value</p>
2177
+ <p></p>
2178
+ </div>
2179
+ </div>
2180
+ <hr>
2181
+ <div class="refsect2">
2182
+ <a name="g-private-set"></a><h3>g_private_set ()</h3>
2183
+ <pre class="programlisting"><span class="returnvalue">void</span>
2184
+ g_private_set (<em class="parameter"><code><a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> *key</code></em>,
2185
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> value</code></em>);</pre>
2186
+ <p>Sets the thread local variable <em class="parameter"><code>key</code></em>
2187
+ to have the value <em class="parameter"><code>value</code></em>
2188
+ in the
2189
+ current thread.</p>
2190
+ <p>This function differs from <a class="link" href="glib-Threads.html#g-private-replace" title="g_private_replace ()"><code class="function">g_private_replace()</code></a> in the following way:
2191
+ the <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>key</code></em>
2192
+ is not called on the old value.</p>
2193
+ <div class="refsect3">
2194
+ <a name="id-1.4.3.7.44.6"></a><h4>Parameters</h4>
2195
+ <div class="informaltable"><table width="100%" border="0">
2196
+ <colgroup>
2197
+ <col width="150px" class="parameters_name">
2198
+ <col class="parameters_description">
2199
+ <col width="200px" class="parameters_annotations">
2200
+ </colgroup>
2201
+ <tbody>
2202
+ <tr>
2203
+ <td class="parameter_name"><p>key</p></td>
2204
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a></p></td>
2205
+ <td class="parameter_annotations"> </td>
2206
+ </tr>
2207
+ <tr>
2208
+ <td class="parameter_name"><p>value</p></td>
2209
+ <td class="parameter_description"><p>the new value</p></td>
2210
+ <td class="parameter_annotations"> </td>
2211
+ </tr>
2212
+ </tbody>
2213
+ </table></div>
2214
+ </div>
2215
+ </div>
2216
+ <hr>
2217
+ <div class="refsect2">
2218
+ <a name="g-private-replace"></a><h3>g_private_replace ()</h3>
2219
+ <pre class="programlisting"><span class="returnvalue">void</span>
2220
+ g_private_replace (<em class="parameter"><code><a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> *key</code></em>,
2221
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> value</code></em>);</pre>
2222
+ <p>Sets the thread local variable <em class="parameter"><code>key</code></em>
2223
+ to have the value <em class="parameter"><code>value</code></em>
2224
+ in the
2225
+ current thread.</p>
2226
+ <p>This function differs from <a class="link" href="glib-Threads.html#g-private-set" title="g_private_set ()"><code class="function">g_private_set()</code></a> in the following way: if
2227
+ the previous value was non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> then the <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> handler for
2228
+ <em class="parameter"><code>key</code></em>
2229
+ is run on it.</p>
2230
+ <div class="refsect3">
2231
+ <a name="id-1.4.3.7.45.6"></a><h4>Parameters</h4>
2232
+ <div class="informaltable"><table width="100%" border="0">
2233
+ <colgroup>
2234
+ <col width="150px" class="parameters_name">
2235
+ <col class="parameters_description">
2236
+ <col width="200px" class="parameters_annotations">
2237
+ </colgroup>
2238
+ <tbody>
2239
+ <tr>
2240
+ <td class="parameter_name"><p>key</p></td>
2241
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a></p></td>
2242
+ <td class="parameter_annotations"> </td>
2243
+ </tr>
2244
+ <tr>
2245
+ <td class="parameter_name"><p>value</p></td>
2246
+ <td class="parameter_description"><p>the new value</p></td>
2247
+ <td class="parameter_annotations"> </td>
2248
+ </tr>
2249
+ </tbody>
2250
+ </table></div>
2251
+ </div>
2252
+ <p class="since">Since 2.32</p>
2253
+ </div>
2254
+ <hr>
2255
+ <div class="refsect2">
2256
+ <a name="g-once"></a><h3>g_once()</h3>
2257
+ <pre class="programlisting">#define g_once(once, func, arg)</pre>
2258
+ <p>The first call to this routine by a process with a given <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a>
2259
+ struct calls <em class="parameter"><code>func</code></em>
2260
+ with the given argument. Thereafter, subsequent
2261
+ calls to <a class="link" href="glib-Threads.html#g-once" title="g_once()"><code class="function">g_once()</code></a> with the same <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> struct do not call <em class="parameter"><code>func</code></em>
2262
+
2263
+ again, but return the stored result of the first call. On return
2264
+ from <a class="link" href="glib-Threads.html#g-once" title="g_once()"><code class="function">g_once()</code></a>, the status of <em class="parameter"><code>once</code></em>
2265
+ will be <a class="link" href="glib-Threads.html#G-ONCE-STATUS-READY:CAPS"><code class="literal">G_ONCE_STATUS_READY</code></a>.</p>
2266
+ <p>For example, a mutex or a thread-specific data key must be created
2267
+ exactly once. In a threaded environment, calling <a class="link" href="glib-Threads.html#g-once" title="g_once()"><code class="function">g_once()</code></a> ensures
2268
+ that the initialization is serialized across multiple threads.</p>
2269
+ <p>Calling <a class="link" href="glib-Threads.html#g-once" title="g_once()"><code class="function">g_once()</code></a> recursively on the same <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> struct in
2270
+ <em class="parameter"><code>func</code></em>
2271
+ will lead to a deadlock.</p>
2272
+ <div class="informalexample">
2273
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2274
+ <tbody>
2275
+ <tr>
2276
+ <td class="listing_lines" align="right"><pre>1
2277
+ 2
2278
+ 3
2279
+ 4
2280
+ 5
2281
+ 6
2282
+ 7
2283
+ 8
2284
+ 9</pre></td>
2285
+ <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-Basic-Types.html#gpointer">gpointer</a></span>
2286
+ <span class="function">get_debug_flags</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
2287
+ <span class="cbracket">{</span>
2288
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="usertype">GOnce</span><span class="normal"> my_once </span><span class="symbol">=</span><span class="normal"> <a href="glib-Threads.html#G-ONCE-INIT:CAPS">G_ONCE_INIT</a></span><span class="symbol">;</span>
2289
+
2290
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-once">g_once</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">my_once</span><span class="symbol">,</span><span class="normal"> parse_debug_flags</span><span class="symbol">,</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
2291
+
2292
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> my_once</span><span class="symbol">.</span><span class="normal">retval</span><span class="symbol">;</span>
2293
+ <span class="cbracket">}</span></pre></td>
2294
+ </tr>
2295
+ </tbody>
2296
+ </table>
2297
+ </div>
2298
+
2299
+ <p></p>
2300
+ <div class="refsect3">
2301
+ <a name="id-1.4.3.7.46.9"></a><h4>Parameters</h4>
2302
+ <div class="informaltable"><table width="100%" border="0">
2303
+ <colgroup>
2304
+ <col width="150px" class="parameters_name">
2305
+ <col class="parameters_description">
2306
+ <col width="200px" class="parameters_annotations">
2307
+ </colgroup>
2308
+ <tbody>
2309
+ <tr>
2310
+ <td class="parameter_name"><p>once</p></td>
2311
+ <td class="parameter_description"><p>a <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> structure</p></td>
2312
+ <td class="parameter_annotations"> </td>
2313
+ </tr>
2314
+ <tr>
2315
+ <td class="parameter_name"><p>func</p></td>
2316
+ <td class="parameter_description"><p>the <a class="link" href="glib-Threads.html#GThreadFunc" title="GThreadFunc ()"><span class="type">GThreadFunc</span></a> function associated to <em class="parameter"><code>once</code></em>
2317
+ . This function
2318
+ is called only once, regardless of the number of times it and
2319
+ its associated <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> struct are passed to <a class="link" href="glib-Threads.html#g-once" title="g_once()"><code class="function">g_once()</code></a>.</p></td>
2320
+ <td class="parameter_annotations"> </td>
2321
+ </tr>
2322
+ <tr>
2323
+ <td class="parameter_name"><p>arg</p></td>
2324
+ <td class="parameter_description"><p>data to be passed to <em class="parameter"><code>func</code></em>
2325
+ </p></td>
2326
+ <td class="parameter_annotations"> </td>
2327
+ </tr>
2328
+ </tbody>
2329
+ </table></div>
2330
+ </div>
2331
+ <p class="since">Since 2.4</p>
2332
+ </div>
2333
+ <hr>
2334
+ <div class="refsect2">
2335
+ <a name="g-once-init-enter"></a><h3>g_once_init_enter ()</h3>
2336
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
2337
+ g_once_init_enter (<em class="parameter"><code>volatile <span class="type">void</span> *location</code></em>);</pre>
2338
+ <p>Function to be called when starting a critical initialization
2339
+ section. The argument <em class="parameter"><code>location</code></em>
2340
+ must point to a static
2341
+ 0-initialized variable that will be set to a value other than 0 at
2342
+ the end of the initialization section. In combination with
2343
+ <a class="link" href="glib-Threads.html#g-once-init-leave" title="g_once_init_leave ()"><code class="function">g_once_init_leave()</code></a> and the unique address <em class="parameter"><code>value_location</code></em>
2344
+ , it can
2345
+ be ensured that an initialization section will be executed only once
2346
+ during a program's life time, and that concurrent threads are
2347
+ blocked until initialization completed. To be used in constructs
2348
+ like this:</p>
2349
+ <div class="informalexample">
2350
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2351
+ <tbody>
2352
+ <tr>
2353
+ <td class="listing_lines" align="right"><pre>1
2354
+ 2
2355
+ 3
2356
+ 4
2357
+ 5
2358
+ 6
2359
+ 7
2360
+ 8
2361
+ 9
2362
+ 10</pre></td>
2363
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="usertype">gsize</span><span class="normal"> initialization_value </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
2364
+
2365
+ <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-Threads.html#g-once-init-enter">g_once_init_enter</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">initialization_value</span><span class="symbol">))</span>
2366
+ <span class="normal"> </span><span class="cbracket">{</span>
2367
+ <span class="normal"> </span><span class="usertype">gsize</span><span class="normal"> setup_value </span><span class="symbol">=</span><span class="normal"> </span><span class="number">42</span><span class="symbol">;</span><span class="normal"> </span><span class="comment">// initialization code here</span>
2368
+
2369
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-once-init-leave">g_once_init_leave</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">initialization_value</span><span class="symbol">,</span><span class="normal"> setup_value</span><span class="symbol">);</span>
2370
+ <span class="normal"> </span><span class="cbracket">}</span>
2371
+
2372
+ <span class="comment">// use initialization_value here</span></pre></td>
2373
+ </tr>
2374
+ </tbody>
2375
+ </table>
2376
+ </div>
2377
+
2378
+ <p></p>
2379
+ <div class="refsect3">
2380
+ <a name="id-1.4.3.7.47.7"></a><h4>Parameters</h4>
2381
+ <div class="informaltable"><table width="100%" border="0">
2382
+ <colgroup>
2383
+ <col width="150px" class="parameters_name">
2384
+ <col class="parameters_description">
2385
+ <col width="200px" class="parameters_annotations">
2386
+ </colgroup>
2387
+ <tbody><tr>
2388
+ <td class="parameter_name"><p>location</p></td>
2389
+ <td class="parameter_description"><p>location of a static initializable variable containing 0</p></td>
2390
+ <td class="parameter_annotations"> </td>
2391
+ </tr></tbody>
2392
+ </table></div>
2393
+ </div>
2394
+ <div class="refsect3">
2395
+ <a name="id-1.4.3.7.47.8"></a><h4>Returns</h4>
2396
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the initialization section should be entered,
2397
+ <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> and blocks otherwise</p>
2398
+ <p></p>
2399
+ </div>
2400
+ <p class="since">Since 2.14</p>
2401
+ </div>
2402
+ <hr>
2403
+ <div class="refsect2">
2404
+ <a name="g-once-init-leave"></a><h3>g_once_init_leave ()</h3>
2405
+ <pre class="programlisting"><span class="returnvalue">void</span>
2406
+ g_once_init_leave (<em class="parameter"><code>volatile <span class="type">void</span> *location</code></em>,
2407
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> result</code></em>);</pre>
2408
+ <p>Counterpart to <a class="link" href="glib-Threads.html#g-once-init-enter" title="g_once_init_enter ()"><code class="function">g_once_init_enter()</code></a>. Expects a location of a static
2409
+ 0-initialized initialization variable, and an initialization value
2410
+ other than 0. Sets the variable to the initialization value, and
2411
+ releases concurrent threads blocking in <a class="link" href="glib-Threads.html#g-once-init-enter" title="g_once_init_enter ()"><code class="function">g_once_init_enter()</code></a> on this
2412
+ initialization variable.</p>
2413
+ <div class="refsect3">
2414
+ <a name="id-1.4.3.7.48.5"></a><h4>Parameters</h4>
2415
+ <div class="informaltable"><table width="100%" border="0">
2416
+ <colgroup>
2417
+ <col width="150px" class="parameters_name">
2418
+ <col class="parameters_description">
2419
+ <col width="200px" class="parameters_annotations">
2420
+ </colgroup>
2421
+ <tbody>
2422
+ <tr>
2423
+ <td class="parameter_name"><p>location</p></td>
2424
+ <td class="parameter_description"><p>location of a static initializable variable containing 0</p></td>
2425
+ <td class="parameter_annotations"> </td>
2426
+ </tr>
2427
+ <tr>
2428
+ <td class="parameter_name"><p>result</p></td>
2429
+ <td class="parameter_description"><p>new non-0 value for *<em class="parameter"><code>value_location</code></em>
2430
+ </p></td>
2431
+ <td class="parameter_annotations"> </td>
2432
+ </tr>
2433
+ </tbody>
2434
+ </table></div>
2435
+ </div>
2436
+ <p class="since">Since 2.14</p>
2437
+ </div>
2438
+ <hr>
2439
+ <div class="refsect2">
2440
+ <a name="g-bit-lock"></a><h3>g_bit_lock ()</h3>
2441
+ <pre class="programlisting"><span class="returnvalue">void</span>
2442
+ g_bit_lock (<em class="parameter"><code>volatile <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *address</code></em>,
2443
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> lock_bit</code></em>);</pre>
2444
+ <p>Sets the indicated <em class="parameter"><code>lock_bit</code></em>
2445
+ in <em class="parameter"><code>address</code></em>
2446
+ . If the bit is already
2447
+ set, this call will block until <a class="link" href="glib-Threads.html#g-bit-unlock" title="g_bit_unlock ()"><code class="function">g_bit_unlock()</code></a> unsets the
2448
+ corresponding bit.</p>
2449
+ <p>Attempting to lock on two different bits within the same integer is
2450
+ not supported and will very probably cause deadlocks.</p>
2451
+ <p>The value of the bit that is set is (1u &lt;&lt; <em class="parameter"><code>bit</code></em>
2452
+ ). If <em class="parameter"><code>bit</code></em>
2453
+ is not
2454
+ between 0 and 31 then the result is undefined.</p>
2455
+ <p>This function accesses <em class="parameter"><code>address</code></em>
2456
+ atomically. All other accesses to
2457
+ <em class="parameter"><code>address</code></em>
2458
+ must be atomic in order for this function to work
2459
+ reliably.</p>
2460
+ <div class="refsect3">
2461
+ <a name="id-1.4.3.7.49.8"></a><h4>Parameters</h4>
2462
+ <div class="informaltable"><table width="100%" border="0">
2463
+ <colgroup>
2464
+ <col width="150px" class="parameters_name">
2465
+ <col class="parameters_description">
2466
+ <col width="200px" class="parameters_annotations">
2467
+ </colgroup>
2468
+ <tbody>
2469
+ <tr>
2470
+ <td class="parameter_name"><p>address</p></td>
2471
+ <td class="parameter_description"><p>a pointer to an integer</p></td>
2472
+ <td class="parameter_annotations"> </td>
2473
+ </tr>
2474
+ <tr>
2475
+ <td class="parameter_name"><p>lock_bit</p></td>
2476
+ <td class="parameter_description"><p>a bit value between 0 and 31</p></td>
2477
+ <td class="parameter_annotations"> </td>
2478
+ </tr>
2479
+ </tbody>
2480
+ </table></div>
2481
+ </div>
2482
+ <p class="since">Since 2.24</p>
2483
+ </div>
2484
+ <hr>
2485
+ <div class="refsect2">
2486
+ <a name="g-bit-trylock"></a><h3>g_bit_trylock ()</h3>
2487
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
2488
+ g_bit_trylock (<em class="parameter"><code>volatile <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *address</code></em>,
2489
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> lock_bit</code></em>);</pre>
2490
+ <p>Sets the indicated <em class="parameter"><code>lock_bit</code></em>
2491
+ in <em class="parameter"><code>address</code></em>
2492
+ , returning <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if
2493
+ successful. If the bit is already set, returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> immediately.</p>
2494
+ <p>Attempting to lock on two different bits within the same integer is
2495
+ not supported.</p>
2496
+ <p>The value of the bit that is set is (1u &lt;&lt; <em class="parameter"><code>bit</code></em>
2497
+ ). If <em class="parameter"><code>bit</code></em>
2498
+ is not
2499
+ between 0 and 31 then the result is undefined.</p>
2500
+ <p>This function accesses <em class="parameter"><code>address</code></em>
2501
+ atomically. All other accesses to
2502
+ <em class="parameter"><code>address</code></em>
2503
+ must be atomic in order for this function to work
2504
+ reliably.</p>
2505
+ <div class="refsect3">
2506
+ <a name="id-1.4.3.7.50.8"></a><h4>Parameters</h4>
2507
+ <div class="informaltable"><table width="100%" border="0">
2508
+ <colgroup>
2509
+ <col width="150px" class="parameters_name">
2510
+ <col class="parameters_description">
2511
+ <col width="200px" class="parameters_annotations">
2512
+ </colgroup>
2513
+ <tbody>
2514
+ <tr>
2515
+ <td class="parameter_name"><p>address</p></td>
2516
+ <td class="parameter_description"><p>a pointer to an integer</p></td>
2517
+ <td class="parameter_annotations"> </td>
2518
+ </tr>
2519
+ <tr>
2520
+ <td class="parameter_name"><p>lock_bit</p></td>
2521
+ <td class="parameter_description"><p>a bit value between 0 and 31</p></td>
2522
+ <td class="parameter_annotations"> </td>
2523
+ </tr>
2524
+ </tbody>
2525
+ </table></div>
2526
+ </div>
2527
+ <div class="refsect3">
2528
+ <a name="id-1.4.3.7.50.9"></a><h4>Returns</h4>
2529
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the lock was acquired</p>
2530
+ <p></p>
2531
+ </div>
2532
+ <p class="since">Since 2.24</p>
2533
+ </div>
2534
+ <hr>
2535
+ <div class="refsect2">
2536
+ <a name="g-bit-unlock"></a><h3>g_bit_unlock ()</h3>
2537
+ <pre class="programlisting"><span class="returnvalue">void</span>
2538
+ g_bit_unlock (<em class="parameter"><code>volatile <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *address</code></em>,
2539
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> lock_bit</code></em>);</pre>
2540
+ <p>Clears the indicated <em class="parameter"><code>lock_bit</code></em>
2541
+ in <em class="parameter"><code>address</code></em>
2542
+ . If another thread is
2543
+ currently blocked in <a class="link" href="glib-Threads.html#g-bit-lock" title="g_bit_lock ()"><code class="function">g_bit_lock()</code></a> on this same bit then it will be
2544
+ woken up.</p>
2545
+ <p>This function accesses <em class="parameter"><code>address</code></em>
2546
+ atomically. All other accesses to
2547
+ <em class="parameter"><code>address</code></em>
2548
+ must be atomic in order for this function to work
2549
+ reliably.</p>
2550
+ <div class="refsect3">
2551
+ <a name="id-1.4.3.7.51.6"></a><h4>Parameters</h4>
2552
+ <div class="informaltable"><table width="100%" border="0">
2553
+ <colgroup>
2554
+ <col width="150px" class="parameters_name">
2555
+ <col class="parameters_description">
2556
+ <col width="200px" class="parameters_annotations">
2557
+ </colgroup>
2558
+ <tbody>
2559
+ <tr>
2560
+ <td class="parameter_name"><p>address</p></td>
2561
+ <td class="parameter_description"><p>a pointer to an integer</p></td>
2562
+ <td class="parameter_annotations"> </td>
2563
+ </tr>
2564
+ <tr>
2565
+ <td class="parameter_name"><p>lock_bit</p></td>
2566
+ <td class="parameter_description"><p>a bit value between 0 and 31</p></td>
2567
+ <td class="parameter_annotations"> </td>
2568
+ </tr>
2569
+ </tbody>
2570
+ </table></div>
2571
+ </div>
2572
+ <p class="since">Since 2.24</p>
2573
+ </div>
2574
+ <hr>
2575
+ <div class="refsect2">
2576
+ <a name="g-pointer-bit-lock"></a><h3>g_pointer_bit_lock ()</h3>
2577
+ <pre class="programlisting"><span class="returnvalue">void</span>
2578
+ g_pointer_bit_lock (<em class="parameter"><code>volatile <span class="type">void</span> *address</code></em>,
2579
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> lock_bit</code></em>);</pre>
2580
+ <p>This is equivalent to g_bit_lock, but working on pointers (or other
2581
+ pointer-sized values).</p>
2582
+ <p>For portability reasons, you may only lock on the bottom 32 bits of
2583
+ the pointer.</p>
2584
+ <div class="refsect3">
2585
+ <a name="id-1.4.3.7.52.6"></a><h4>Parameters</h4>
2586
+ <div class="informaltable"><table width="100%" border="0">
2587
+ <colgroup>
2588
+ <col width="150px" class="parameters_name">
2589
+ <col class="parameters_description">
2590
+ <col width="200px" class="parameters_annotations">
2591
+ </colgroup>
2592
+ <tbody>
2593
+ <tr>
2594
+ <td class="parameter_name"><p>address</p></td>
2595
+ <td class="parameter_description"><p>a pointer to a <span class="type">gpointer-sized</span> value</p></td>
2596
+ <td class="parameter_annotations"> </td>
2597
+ </tr>
2598
+ <tr>
2599
+ <td class="parameter_name"><p>lock_bit</p></td>
2600
+ <td class="parameter_description"><p>a bit value between 0 and 31</p></td>
2601
+ <td class="parameter_annotations"> </td>
2602
+ </tr>
2603
+ </tbody>
2604
+ </table></div>
2605
+ </div>
2606
+ <p class="since">Since 2.30</p>
2607
+ </div>
2608
+ <hr>
2609
+ <div class="refsect2">
2610
+ <a name="g-pointer-bit-trylock"></a><h3>g_pointer_bit_trylock ()</h3>
2611
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>
2612
+ g_pointer_bit_trylock (<em class="parameter"><code>volatile <span class="type">void</span> *address</code></em>,
2613
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> lock_bit</code></em>);</pre>
2614
+ <p>This is equivalent to g_bit_trylock, but working on pointers (or
2615
+ other pointer-sized values).</p>
2616
+ <p>For portability reasons, you may only lock on the bottom 32 bits of
2617
+ the pointer.</p>
2618
+ <div class="refsect3">
2619
+ <a name="id-1.4.3.7.53.6"></a><h4>Parameters</h4>
2620
+ <div class="informaltable"><table width="100%" border="0">
2621
+ <colgroup>
2622
+ <col width="150px" class="parameters_name">
2623
+ <col class="parameters_description">
2624
+ <col width="200px" class="parameters_annotations">
2625
+ </colgroup>
2626
+ <tbody>
2627
+ <tr>
2628
+ <td class="parameter_name"><p>address</p></td>
2629
+ <td class="parameter_description"><p>a pointer to a <span class="type">gpointer-sized</span> value</p></td>
2630
+ <td class="parameter_annotations"> </td>
2631
+ </tr>
2632
+ <tr>
2633
+ <td class="parameter_name"><p>lock_bit</p></td>
2634
+ <td class="parameter_description"><p>a bit value between 0 and 31</p></td>
2635
+ <td class="parameter_annotations"> </td>
2636
+ </tr>
2637
+ </tbody>
2638
+ </table></div>
2639
+ </div>
2640
+ <div class="refsect3">
2641
+ <a name="id-1.4.3.7.53.7"></a><h4>Returns</h4>
2642
+ <p> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the lock was acquired</p>
2643
+ <p></p>
2644
+ </div>
2645
+ <p class="since">Since 2.30</p>
2646
+ </div>
2647
+ <hr>
2648
+ <div class="refsect2">
2649
+ <a name="g-pointer-bit-unlock"></a><h3>g_pointer_bit_unlock ()</h3>
2650
+ <pre class="programlisting"><span class="returnvalue">void</span>
2651
+ g_pointer_bit_unlock (<em class="parameter"><code>volatile <span class="type">void</span> *address</code></em>,
2652
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> lock_bit</code></em>);</pre>
2653
+ <p>This is equivalent to g_bit_unlock, but working on pointers (or other
2654
+ pointer-sized values).</p>
2655
+ <p>For portability reasons, you may only lock on the bottom 32 bits of
2656
+ the pointer.</p>
2657
+ <div class="refsect3">
2658
+ <a name="id-1.4.3.7.54.6"></a><h4>Parameters</h4>
2659
+ <div class="informaltable"><table width="100%" border="0">
2660
+ <colgroup>
2661
+ <col width="150px" class="parameters_name">
2662
+ <col class="parameters_description">
2663
+ <col width="200px" class="parameters_annotations">
2664
+ </colgroup>
2665
+ <tbody>
2666
+ <tr>
2667
+ <td class="parameter_name"><p>address</p></td>
2668
+ <td class="parameter_description"><p>a pointer to a <span class="type">gpointer-sized</span> value</p></td>
2669
+ <td class="parameter_annotations"> </td>
2670
+ </tr>
2671
+ <tr>
2672
+ <td class="parameter_name"><p>lock_bit</p></td>
2673
+ <td class="parameter_description"><p>a bit value between 0 and 31</p></td>
2674
+ <td class="parameter_annotations"> </td>
2675
+ </tr>
2676
+ </tbody>
2677
+ </table></div>
2678
+ </div>
2679
+ <p class="since">Since 2.30</p>
2680
+ </div>
2681
+ <hr>
2682
+ <div class="refsect2">
2683
+ <a name="g-get-num-processors"></a><h3>g_get_num_processors ()</h3>
2684
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>
2685
+ g_get_num_processors (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
2686
+ <p>Determine the approximate number of threads that the system will
2687
+ schedule simultaneously for this process. This is intended to be
2688
+ used as a parameter to <a class="link" href="glib-Thread-Pools.html#g-thread-pool-new" title="g_thread_pool_new ()"><code class="function">g_thread_pool_new()</code></a> for CPU bound tasks and
2689
+ similar cases.</p>
2690
+ <div class="refsect3">
2691
+ <a name="id-1.4.3.7.55.5"></a><h4>Returns</h4>
2692
+ <p> Number of schedulable threads, always greater than 0</p>
2693
+ <p></p>
2694
+ </div>
2695
+ <p class="since">Since 2.36</p>
2696
+ </div>
2697
+ </div>
2698
+ <div class="refsect1">
2699
+ <a name="glib-Threads.other_details"></a><h2>Types and Values</h2>
2700
+ <div class="refsect2">
2701
+ <a name="G-THREAD-ERROR:CAPS"></a><h3>G_THREAD_ERROR</h3>
2702
+ <pre class="programlisting">#define G_THREAD_ERROR g_thread_error_quark ()
2703
+ </pre>
2704
+ <p>The error domain of the GLib thread subsystem.</p>
2705
+ </div>
2706
+ <hr>
2707
+ <div class="refsect2">
2708
+ <a name="GThreadError"></a><h3>enum GThreadError</h3>
2709
+ <p>Possible errors of thread related functions.</p>
2710
+ <div class="refsect3">
2711
+ <a name="id-1.4.3.8.3.4"></a><h4>Members</h4>
2712
+ <div class="informaltable"><table width="100%" border="0">
2713
+ <colgroup>
2714
+ <col width="300px" class="enum_members_name">
2715
+ <col class="enum_members_description">
2716
+ <col width="200px" class="enum_members_annotations">
2717
+ </colgroup>
2718
+ <tbody><tr>
2719
+ <td class="enum_member_name"><p><a name="G-THREAD-ERROR-AGAIN:CAPS"></a>G_THREAD_ERROR_AGAIN</p></td>
2720
+ <td class="enum_member_description">
2721
+ <p>a thread couldn't be created due to resource
2722
+ shortage. Try again later.</p>
2723
+ </td>
2724
+ <td class="enum_member_annotations"> </td>
2725
+ </tr></tbody>
2726
+ </table></div>
2727
+ </div>
2728
+ </div>
2729
+ <hr>
2730
+ <div class="refsect2">
2731
+ <a name="GThread"></a><h3>GThread</h3>
2732
+ <pre class="programlisting">typedef struct {
2733
+ } GThread;
2734
+ </pre>
2735
+ <p>The <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> struct represents a running thread. This struct
2736
+ is returned by <a class="link" href="glib-Threads.html#g-thread-new" title="g_thread_new ()"><code class="function">g_thread_new()</code></a> or <a class="link" href="glib-Threads.html#g-thread-try-new" title="g_thread_try_new ()"><code class="function">g_thread_try_new()</code></a>. You can
2737
+ obtain the <a class="link" href="glib-Threads.html#GThread" title="GThread"><span class="type">GThread</span></a> struct representing the current thread by
2738
+ calling <a class="link" href="glib-Threads.html#g-thread-self" title="g_thread_self ()"><code class="function">g_thread_self()</code></a>.</p>
2739
+ <p>GThread is refcounted, see <a class="link" href="glib-Threads.html#g-thread-ref" title="g_thread_ref ()"><code class="function">g_thread_ref()</code></a> and <a class="link" href="glib-Threads.html#g-thread-unref" title="g_thread_unref ()"><code class="function">g_thread_unref()</code></a>.
2740
+ The thread represented by it holds a reference while it is running,
2741
+ and <a class="link" href="glib-Threads.html#g-thread-join" title="g_thread_join ()"><code class="function">g_thread_join()</code></a> consumes the reference that it is given, so
2742
+ it is normally not necessary to manage GThread references
2743
+ explicitly.</p>
2744
+ <p>The structure is opaque -- none of its fields may be directly
2745
+ accessed.</p>
2746
+ </div>
2747
+ <hr>
2748
+ <div class="refsect2">
2749
+ <a name="GMutex"></a><h3>union GMutex</h3>
2750
+ <p>The <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> struct is an opaque data structure to represent a mutex
2751
+ (mutual exclusion). It can be used to protect data against shared
2752
+ access.</p>
2753
+ <p>Take for example the following function:</p>
2754
+ <div class="informalexample">
2755
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2756
+ <tbody>
2757
+ <tr>
2758
+ <td class="listing_lines" align="right"><pre>1
2759
+ 2
2760
+ 3
2761
+ 4
2762
+ 5
2763
+ 6
2764
+ 7
2765
+ 8
2766
+ 9
2767
+ 10
2768
+ 11</pre></td>
2769
+ <td class="listing_code"><pre class="programlisting"><span class="type">int</span>
2770
+ <span class="function">give_me_next_number</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
2771
+ <span class="cbracket">{</span>
2772
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="type">int</span><span class="normal"> current_number </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
2773
+
2774
+ <span class="normal"> </span><span class="comment">// now do a very complicated calculation to calculate the new</span>
2775
+ <span class="normal"> </span><span class="comment">// number, this might for example be a random number generator</span>
2776
+ <span class="normal"> current_number </span><span class="symbol">=</span><span class="normal"> </span><span class="function">calc_next_number</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">current_number</span><span class="symbol">);</span>
2777
+
2778
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> current_number</span><span class="symbol">;</span>
2779
+ <span class="cbracket">}</span></pre></td>
2780
+ </tr>
2781
+ </tbody>
2782
+ </table>
2783
+ </div>
2784
+
2785
+ <p>
2786
+ It is easy to see that this won't work in a multi-threaded
2787
+ application. There current_number must be protected against shared
2788
+ access. A <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> can be used as a solution to this problem:</p>
2789
+ <div class="informalexample">
2790
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2791
+ <tbody>
2792
+ <tr>
2793
+ <td class="listing_lines" align="right"><pre>1
2794
+ 2
2795
+ 3
2796
+ 4
2797
+ 5
2798
+ 6
2799
+ 7
2800
+ 8
2801
+ 9
2802
+ 10
2803
+ 11
2804
+ 12
2805
+ 13</pre></td>
2806
+ <td class="listing_code"><pre class="programlisting"><span class="type">int</span>
2807
+ <span class="function">give_me_next_number</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
2808
+ <span class="cbracket">{</span>
2809
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="usertype">GMutex</span><span class="normal"> mutex</span><span class="symbol">;</span>
2810
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="type">int</span><span class="normal"> current_number </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
2811
+ <span class="normal"> </span><span class="type">int</span><span class="normal"> ret_val</span><span class="symbol">;</span>
2812
+
2813
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-lock">g_mutex_lock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">mutex</span><span class="symbol">);</span>
2814
+ <span class="normal"> ret_val </span><span class="symbol">=</span><span class="normal"> current_number </span><span class="symbol">=</span><span class="normal"> </span><span class="function">calc_next_number</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">current_number</span><span class="symbol">);</span>
2815
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-unlock">g_mutex_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">mutex</span><span class="symbol">);</span>
2816
+
2817
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> ret_val</span><span class="symbol">;</span>
2818
+ <span class="cbracket">}</span></pre></td>
2819
+ </tr>
2820
+ </tbody>
2821
+ </table>
2822
+ </div>
2823
+
2824
+ <p>
2825
+ Notice that the <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> is not initialised to any particular value.
2826
+ Its placement in static storage ensures that it will be initialised
2827
+ to all-zeros, which is appropriate.</p>
2828
+ <p>If a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> is placed in other contexts (eg: embedded in a struct)
2829
+ then it must be explicitly initialised using <a class="link" href="glib-Threads.html#g-mutex-init" title="g_mutex_init ()"><code class="function">g_mutex_init()</code></a>.</p>
2830
+ <p>A <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> should only be accessed via g_mutex_ functions.</p>
2831
+ </div>
2832
+ <hr>
2833
+ <div class="refsect2">
2834
+ <a name="GRecMutex"></a><h3>struct GRecMutex</h3>
2835
+ <pre class="programlisting">struct GRecMutex {
2836
+ };
2837
+ </pre>
2838
+ <p>The GRecMutex struct is an opaque data structure to represent a
2839
+ recursive mutex. It is similar to a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> with the difference
2840
+ that it is possible to lock a GRecMutex multiple times in the same
2841
+ thread without deadlock. When doing so, care has to be taken to
2842
+ unlock the recursive mutex as often as it has been locked.</p>
2843
+ <p>If a <a class="link" href="glib-Threads.html#GRecMutex" title="struct GRecMutex"><span class="type">GRecMutex</span></a> is allocated in static storage then it can be used
2844
+ without initialisation. Otherwise, you should call
2845
+ <a class="link" href="glib-Threads.html#g-rec-mutex-init" title="g_rec_mutex_init ()"><code class="function">g_rec_mutex_init()</code></a> on it and <a class="link" href="glib-Threads.html#g-rec-mutex-clear" title="g_rec_mutex_clear ()"><code class="function">g_rec_mutex_clear()</code></a> when done.</p>
2846
+ <p>A GRecMutex should only be accessed with the
2847
+ g_rec_mutex_ functions.</p>
2848
+ <p class="since">Since 2.32</p>
2849
+ </div>
2850
+ <hr>
2851
+ <div class="refsect2">
2852
+ <a name="GRWLock"></a><h3>struct GRWLock</h3>
2853
+ <pre class="programlisting">struct GRWLock {
2854
+ };
2855
+ </pre>
2856
+ <p>The GRWLock struct is an opaque data structure to represent a
2857
+ reader-writer lock. It is similar to a <a class="link" href="glib-Threads.html#GMutex" title="union GMutex"><span class="type">GMutex</span></a> in that it allows
2858
+ multiple threads to coordinate access to a shared resource.</p>
2859
+ <p>The difference to a mutex is that a reader-writer lock discriminates
2860
+ between read-only ('reader') and full ('writer') access. While only
2861
+ one thread at a time is allowed write access (by holding the 'writer'
2862
+ lock via <a class="link" href="glib-Threads.html#g-rw-lock-writer-lock" title="g_rw_lock_writer_lock ()"><code class="function">g_rw_lock_writer_lock()</code></a>), multiple threads can gain
2863
+ simultaneous read-only access (by holding the 'reader' lock via
2864
+ <a class="link" href="glib-Threads.html#g-rw-lock-reader-lock" title="g_rw_lock_reader_lock ()"><code class="function">g_rw_lock_reader_lock()</code></a>).</p>
2865
+ <p>Here is an example for an array with access functions:</p>
2866
+ <div class="informalexample">
2867
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2868
+ <tbody>
2869
+ <tr>
2870
+ <td class="listing_lines" align="right"><pre>1
2871
+ 2
2872
+ 3
2873
+ 4
2874
+ 5
2875
+ 6
2876
+ 7
2877
+ 8
2878
+ 9
2879
+ 10
2880
+ 11
2881
+ 12
2882
+ 13
2883
+ 14
2884
+ 15
2885
+ 16
2886
+ 17
2887
+ 18
2888
+ 19
2889
+ 20
2890
+ 21
2891
+ 22
2892
+ 23
2893
+ 24
2894
+ 25
2895
+ 26
2896
+ 27
2897
+ 28
2898
+ 29
2899
+ 30
2900
+ 31
2901
+ 32
2902
+ 33</pre></td>
2903
+ <td class="listing_code"><pre class="programlisting"><span class="usertype">GRWLock</span><span class="normal"> lock</span><span class="symbol">;</span>
2904
+ <span class="usertype">GPtrArray</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">array</span><span class="symbol">;</span>
2905
+
2906
+ <span class="normal"><a href="glib-Basic-Types.html#gpointer">gpointer</a></span>
2907
+ <span class="function">my_array_get</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">guint</span><span class="normal"> index</span><span class="symbol">)</span>
2908
+ <span class="cbracket">{</span>
2909
+ <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> retval </span><span class="symbol">=</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
2910
+
2911
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">array</span><span class="symbol">)</span>
2912
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
2913
+
2914
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-rw-lock-reader-lock">g_rw_lock_reader_lock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">lock</span><span class="symbol">);</span>
2915
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">index </span><span class="symbol">&lt;</span><span class="normal"> array</span><span class="symbol">-&gt;</span><span class="normal">len</span><span class="symbol">)</span>
2916
+ <span class="normal"> retval </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Pointer-Arrays.html#g-ptr-array-index">g_ptr_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">array</span><span class="symbol">,</span><span class="normal"> index</span><span class="symbol">);</span>
2917
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-rw-lock-reader-unlock">g_rw_lock_reader_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">lock</span><span class="symbol">);</span>
2918
+
2919
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> retval</span><span class="symbol">;</span>
2920
+ <span class="cbracket">}</span>
2921
+
2922
+ <span class="type">void</span>
2923
+ <span class="function">my_array_set</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">guint</span><span class="normal"> index</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span>
2924
+ <span class="cbracket">{</span>
2925
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-rw-lock-writer-lock">g_rw_lock_writer_lock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">lock</span><span class="symbol">);</span>
2926
+
2927
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">array</span><span class="symbol">)</span>
2928
+ <span class="normal"> array </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Pointer-Arrays.html#g-ptr-array-new">g_ptr_array_new</a></span><span class="normal"> </span><span class="symbol">();</span>
2929
+
2930
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">index </span><span class="symbol">&gt;=</span><span class="normal"> array</span><span class="symbol">-&gt;</span><span class="normal">len</span><span class="symbol">)</span>
2931
+ <span class="normal"> </span><span class="function"><a href="glib-Pointer-Arrays.html#g-ptr-array-set-size">g_ptr_array_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">array</span><span class="symbol">,</span><span class="normal"> index</span><span class="symbol">+</span><span class="number">1</span><span class="symbol">);</span>
2932
+ <span class="normal"> </span><span class="function"><a href="glib-Pointer-Arrays.html#g-ptr-array-index">g_ptr_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">array</span><span class="symbol">,</span><span class="normal"> index</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">;</span>
2933
+
2934
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-rw-lock-writer-unlock">g_rw_lock_writer_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">lock</span><span class="symbol">);</span>
2935
+ <span class="cbracket">}</span></pre></td>
2936
+ </tr>
2937
+ </tbody>
2938
+ </table>
2939
+ </div>
2940
+
2941
+ <p>
2942
+ This example shows an array which can be accessed by many readers
2943
+ (the <code class="function">my_array_get()</code> function) simultaneously, whereas the writers
2944
+ (the <code class="function">my_array_set()</code> function) will only be allowed one at a time
2945
+ and only if no readers currently access the array. This is because
2946
+ of the potentially dangerous resizing of the array. Using these
2947
+ functions is fully multi-thread safe now.</p>
2948
+ <p>If a <a class="link" href="glib-Threads.html#GRWLock" title="struct GRWLock"><span class="type">GRWLock</span></a> is allocated in static storage then it can be used
2949
+ without initialisation. Otherwise, you should call
2950
+ <a class="link" href="glib-Threads.html#g-rw-lock-init" title="g_rw_lock_init ()"><code class="function">g_rw_lock_init()</code></a> on it and <a class="link" href="glib-Threads.html#g-rw-lock-clear" title="g_rw_lock_clear ()"><code class="function">g_rw_lock_clear()</code></a> when done.</p>
2951
+ <p>A GRWLock should only be accessed with the g_rw_lock_ functions.</p>
2952
+ <p class="since">Since 2.32</p>
2953
+ </div>
2954
+ <hr>
2955
+ <div class="refsect2">
2956
+ <a name="GCond"></a><h3>struct GCond</h3>
2957
+ <pre class="programlisting">struct GCond {
2958
+ };
2959
+ </pre>
2960
+ <p>The <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> struct is an opaque data structure that represents a
2961
+ condition. Threads can block on a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> if they find a certain
2962
+ condition to be false. If other threads change the state of this
2963
+ condition they signal the <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a>, and that causes the waiting
2964
+ threads to be woken up.</p>
2965
+ <p>Consider the following example of a shared variable. One or more
2966
+ threads can wait for data to be published to the variable and when
2967
+ another thread publishes the data, it can signal one of the waiting
2968
+ threads to wake up to collect the data.</p>
2969
+ <p>Here is an example for using GCond to block a thread until a condition
2970
+ is satisfied:</p>
2971
+ <div class="informalexample">
2972
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2973
+ <tbody>
2974
+ <tr>
2975
+ <td class="listing_lines" align="right"><pre>1
2976
+ 2
2977
+ 3
2978
+ 4
2979
+ 5
2980
+ 6
2981
+ 7
2982
+ 8
2983
+ 9
2984
+ 10
2985
+ 11
2986
+ 12
2987
+ 13
2988
+ 14
2989
+ 15
2990
+ 16
2991
+ 17
2992
+ 18
2993
+ 19
2994
+ 20
2995
+ 21
2996
+ 22
2997
+ 23
2998
+ 24
2999
+ 25
3000
+ 26
3001
+ 27</pre></td>
3002
+ <td class="listing_code"><pre class="programlisting"><span class="usertype">gpointer</span><span class="normal"> current_data </span><span class="symbol">=</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
3003
+ <span class="usertype">GMutex</span><span class="normal"> data_mutex</span><span class="symbol">;</span>
3004
+ <span class="usertype">GCond</span><span class="normal"> data_cond</span><span class="symbol">;</span>
3005
+
3006
+ <span class="type">void</span>
3007
+ <span class="function">push_data</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span>
3008
+ <span class="cbracket">{</span>
3009
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-lock">g_mutex_lock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
3010
+ <span class="normal"> current_data </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">;</span>
3011
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-cond-signal">g_cond_signal</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_cond</span><span class="symbol">);</span>
3012
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-unlock">g_mutex_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
3013
+ <span class="cbracket">}</span>
3014
+
3015
+ <span class="normal"><a href="glib-Basic-Types.html#gpointer">gpointer</a></span>
3016
+ <span class="function">pop_data</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
3017
+ <span class="cbracket">{</span>
3018
+ <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">;</span>
3019
+
3020
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-lock">g_mutex_lock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
3021
+ <span class="normal"> </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">current_data</span><span class="symbol">)</span>
3022
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-cond-wait">g_cond_wait</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_cond</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
3023
+ <span class="normal"> data </span><span class="symbol">=</span><span class="normal"> current_data</span><span class="symbol">;</span>
3024
+ <span class="normal"> current_data </span><span class="symbol">=</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
3025
+ <span class="normal"> </span><span class="function"><a href="glib-Threads.html#g-mutex-unlock">g_mutex_unlock</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">data_mutex</span><span class="symbol">);</span>
3026
+
3027
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> data</span><span class="symbol">;</span>
3028
+ <span class="cbracket">}</span></pre></td>
3029
+ </tr>
3030
+ </tbody>
3031
+ </table>
3032
+ </div>
3033
+
3034
+ <p>
3035
+ Whenever a thread calls <code class="function">pop_data()</code> now, it will wait until
3036
+ current_data is non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, i.e. until some other thread
3037
+ has called <code class="function">push_data()</code>.</p>
3038
+ <p>The example shows that use of a condition variable must always be
3039
+ paired with a mutex. Without the use of a mutex, there would be a
3040
+ race between the check of <em class="parameter"><code>current_data</code></em>
3041
+ by the while loop in
3042
+ <code class="function">pop_data()</code> and waiting. Specifically, another thread could set
3043
+ <em class="parameter"><code>current_data</code></em>
3044
+ after the check, and signal the cond (with nobody
3045
+ waiting on it) before the first thread goes to sleep. <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> is
3046
+ specifically useful for its ability to release the mutex and go
3047
+ to sleep atomically.</p>
3048
+ <p>It is also important to use the <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a> and <a class="link" href="glib-Threads.html#g-cond-wait-until" title="g_cond_wait_until ()"><code class="function">g_cond_wait_until()</code></a>
3049
+ functions only inside a loop which checks for the condition to be
3050
+ true. See <a class="link" href="glib-Threads.html#g-cond-wait" title="g_cond_wait ()"><code class="function">g_cond_wait()</code></a> for an explanation of why the condition may
3051
+ not be true even after it returns.</p>
3052
+ <p>If a <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> is allocated in static storage then it can be used
3053
+ without initialisation. Otherwise, you should call <a class="link" href="glib-Threads.html#g-cond-init" title="g_cond_init ()"><code class="function">g_cond_init()</code></a>
3054
+ on it and <a class="link" href="glib-Threads.html#g-cond-clear" title="g_cond_clear ()"><code class="function">g_cond_clear()</code></a> when done.</p>
3055
+ <p>A <a class="link" href="glib-Threads.html#GCond" title="struct GCond"><span class="type">GCond</span></a> should only be accessed via the g_cond_ functions.</p>
3056
+ </div>
3057
+ <hr>
3058
+ <div class="refsect2">
3059
+ <a name="GPrivate"></a><h3>struct GPrivate</h3>
3060
+ <pre class="programlisting">struct GPrivate {
3061
+ };
3062
+ </pre>
3063
+ <p>The <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> struct is an opaque data structure to represent a
3064
+ thread-local data key. It is approximately equivalent to the
3065
+ <code class="function">pthread_setspecific()</code>/<code class="function">pthread_getspecific()</code> APIs on POSIX and to
3066
+ <code class="function">TlsSetValue()</code>/<code class="function">TlsGetValue()</code> on Windows.</p>
3067
+ <p>If you don't already know why you might want this functionality,
3068
+ then you probably don't need it.</p>
3069
+ <p><a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> is a very limited resource (as far as 128 per program,
3070
+ shared between all libraries). It is also not possible to destroy a
3071
+ <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> after it has been used. As such, it is only ever acceptable
3072
+ to use <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> in static scope, and even then sparingly so.</p>
3073
+ <p>See <a class="link" href="glib-Threads.html#G-PRIVATE-INIT:CAPS" title="G_PRIVATE_INIT()"><code class="function">G_PRIVATE_INIT()</code></a> for a couple of examples.</p>
3074
+ <p>The <a class="link" href="glib-Threads.html#GPrivate" title="struct GPrivate"><span class="type">GPrivate</span></a> structure should be considered opaque. It should only
3075
+ be accessed via the g_private_ functions.</p>
3076
+ </div>
3077
+ <hr>
3078
+ <div class="refsect2">
3079
+ <a name="GOnce"></a><h3>struct GOnce</h3>
3080
+ <pre class="programlisting">struct GOnce {
3081
+ volatile GOnceStatus status;
3082
+ volatile gpointer retval;
3083
+ };
3084
+ </pre>
3085
+ <p>A <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> struct controls a one-time initialization function. Any
3086
+ one-time initialization function must have its own unique <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a>
3087
+ struct.</p>
3088
+ <div class="refsect3">
3089
+ <a name="id-1.4.3.8.10.5"></a><h4>Members</h4>
3090
+ <div class="informaltable"><table width="100%" border="0">
3091
+ <colgroup>
3092
+ <col width="300px" class="struct_members_name">
3093
+ <col class="struct_members_description">
3094
+ <col width="200px" class="struct_members_annotations">
3095
+ </colgroup>
3096
+ <tbody>
3097
+ <tr>
3098
+ <td class="struct_member_name"><p>volatile <a class="link" href="glib-Threads.html#GOnceStatus" title="enum GOnceStatus"><span class="type">GOnceStatus</span></a> <em class="structfield"><code><a name="GOnce.status"></a>status</code></em>;</p></td>
3099
+ <td class="struct_member_description"><p>the status of the <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a></p></td>
3100
+ <td class="struct_member_annotations"> </td>
3101
+ </tr>
3102
+ <tr>
3103
+ <td class="struct_member_name"><p>volatile <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GOnce.retval"></a>retval</code></em>;</p></td>
3104
+ <td class="struct_member_description"><p>the value returned by the call to the function, if <em class="parameter"><code>status</code></em>
3105
+ is <a class="link" href="glib-Threads.html#G-ONCE-STATUS-READY:CAPS"><code class="literal">G_ONCE_STATUS_READY</code></a></p></td>
3106
+ <td class="struct_member_annotations"> </td>
3107
+ </tr>
3108
+ </tbody>
3109
+ </table></div>
3110
+ </div>
3111
+ <p class="since">Since 2.4</p>
3112
+ </div>
3113
+ <hr>
3114
+ <div class="refsect2">
3115
+ <a name="GOnceStatus"></a><h3>enum GOnceStatus</h3>
3116
+ <p>The possible statuses of a one-time initialization function
3117
+ controlled by a <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> struct.</p>
3118
+ <div class="refsect3">
3119
+ <a name="id-1.4.3.8.11.4"></a><h4>Members</h4>
3120
+ <div class="informaltable"><table width="100%" border="0">
3121
+ <colgroup>
3122
+ <col width="300px" class="enum_members_name">
3123
+ <col class="enum_members_description">
3124
+ <col width="200px" class="enum_members_annotations">
3125
+ </colgroup>
3126
+ <tbody>
3127
+ <tr>
3128
+ <td class="enum_member_name"><p><a name="G-ONCE-STATUS-NOTCALLED:CAPS"></a>G_ONCE_STATUS_NOTCALLED</p></td>
3129
+ <td class="enum_member_description">
3130
+ <p>the function has not been called yet.</p>
3131
+ </td>
3132
+ <td class="enum_member_annotations"> </td>
3133
+ </tr>
3134
+ <tr>
3135
+ <td class="enum_member_name"><p><a name="G-ONCE-STATUS-PROGRESS:CAPS"></a>G_ONCE_STATUS_PROGRESS</p></td>
3136
+ <td class="enum_member_description">
3137
+ <p>the function call is currently in progress.</p>
3138
+ </td>
3139
+ <td class="enum_member_annotations"> </td>
3140
+ </tr>
3141
+ <tr>
3142
+ <td class="enum_member_name"><p><a name="G-ONCE-STATUS-READY:CAPS"></a>G_ONCE_STATUS_READY</p></td>
3143
+ <td class="enum_member_description">
3144
+ <p>the function has been called.</p>
3145
+ </td>
3146
+ <td class="enum_member_annotations"> </td>
3147
+ </tr>
3148
+ </tbody>
3149
+ </table></div>
3150
+ </div>
3151
+ <p class="since">Since 2.4</p>
3152
+ </div>
3153
+ <hr>
3154
+ <div class="refsect2">
3155
+ <a name="G-ONCE-INIT:CAPS"></a><h3>G_ONCE_INIT</h3>
3156
+ <pre class="programlisting">#define G_ONCE_INIT { G_ONCE_STATUS_NOTCALLED, NULL }
3157
+ </pre>
3158
+ <p>A <a class="link" href="glib-Threads.html#GOnce" title="struct GOnce"><span class="type">GOnce</span></a> must be initialized with this macro before it can be used.</p>
3159
+ <div class="informalexample">
3160
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
3161
+ <tbody>
3162
+ <tr>
3163
+ <td class="listing_lines" align="right"><pre>1</pre></td>
3164
+ <td class="listing_code"><pre class="programlisting"><span class="usertype">GOnce</span><span class="normal"> my_once </span><span class="symbol">=</span><span class="normal"> <a href="glib-Threads.html#G-ONCE-INIT:CAPS">G_ONCE_INIT</a></span><span class="symbol">;</span></pre></td>
3165
+ </tr>
3166
+ </tbody>
3167
+ </table>
3168
+ </div>
3169
+
3170
+ <p></p>
3171
+ <p class="since">Since 2.4</p>
3172
+ </div>
3173
+ </div>
3174
+ <div class="refsect1">
3175
+ <a name="glib-Threads.see-also"></a><h2>See Also</h2>
3176
+ <p><a class="link" href="glib-Thread-Pools.html#GThreadPool" title="struct GThreadPool"><span class="type">GThreadPool</span></a>, <a class="link" href="glib-Asynchronous-Queues.html#GAsyncQueue" title="GAsyncQueue"><span class="type">GAsyncQueue</span></a></p>
3177
+ </div>
3178
+ </div>
3179
+ <div class="footer">
3180
+ <hr>
3181
+ Generated by GTK-Doc V1.21.1</div>
3182
+ </body>
3183
+ </html>