glib2 2.2.4-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>