@img/sharp-libvips-dev 0.0.1
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.
- package/README.md +47 -0
- package/cplusplus/VConnection.cpp +151 -0
- package/cplusplus/VError.cpp +49 -0
- package/cplusplus/VImage.cpp +1548 -0
- package/cplusplus/VInterpolate.cpp +62 -0
- package/cplusplus/VRegion.cpp +27 -0
- package/cplusplus/index.js +1 -0
- package/cplusplus/vips-operators.cpp +3760 -0
- package/include/aom/aom.h +127 -0
- package/include/aom/aom_codec.h +573 -0
- package/include/aom/aom_decoder.h +257 -0
- package/include/aom/aom_encoder.h +1137 -0
- package/include/aom/aom_external_partition.h +452 -0
- package/include/aom/aom_frame_buffer.h +84 -0
- package/include/aom/aom_image.h +448 -0
- package/include/aom/aom_integer.h +68 -0
- package/include/aom/aomcx.h +2112 -0
- package/include/aom/aomdx.h +604 -0
- package/include/archive.h +1212 -0
- package/include/archive_entry.h +723 -0
- package/include/cairo/cairo-deprecated.h +123 -0
- package/include/cairo/cairo-features.h +29 -0
- package/include/cairo/cairo-ft.h +118 -0
- package/include/cairo/cairo-gobject.h +192 -0
- package/include/cairo/cairo-svg.h +130 -0
- package/include/cairo/cairo-version.h +8 -0
- package/include/cairo/cairo.h +3281 -0
- package/include/cgif.h +80 -0
- package/include/expat.h +1064 -0
- package/include/expat_config.h +140 -0
- package/include/expat_external.h +165 -0
- package/include/ffi.h +531 -0
- package/include/ffitarget.h +164 -0
- package/include/fontconfig/fcfreetype.h +59 -0
- package/include/fontconfig/fcprivate.h +134 -0
- package/include/fontconfig/fontconfig.h +1158 -0
- package/include/freetype2/freetype/config/ftconfig.h +51 -0
- package/include/freetype2/freetype/config/ftheader.h +836 -0
- package/include/freetype2/freetype/config/ftmodule.h +21 -0
- package/include/freetype2/freetype/config/ftoption.h +1014 -0
- package/include/freetype2/freetype/config/ftstdlib.h +185 -0
- package/include/freetype2/freetype/config/integer-types.h +250 -0
- package/include/freetype2/freetype/config/mac-support.h +49 -0
- package/include/freetype2/freetype/config/public-macros.h +138 -0
- package/include/freetype2/freetype/freetype.h +5337 -0
- package/include/freetype2/freetype/ftadvanc.h +188 -0
- package/include/freetype2/freetype/ftbbox.h +101 -0
- package/include/freetype2/freetype/ftbdf.h +212 -0
- package/include/freetype2/freetype/ftbitmap.h +329 -0
- package/include/freetype2/freetype/ftbzip2.h +102 -0
- package/include/freetype2/freetype/ftcache.h +1087 -0
- package/include/freetype2/freetype/ftchapters.h +168 -0
- package/include/freetype2/freetype/ftcid.h +167 -0
- package/include/freetype2/freetype/ftcolor.h +1667 -0
- package/include/freetype2/freetype/ftdriver.h +1246 -0
- package/include/freetype2/freetype/fterrdef.h +283 -0
- package/include/freetype2/freetype/fterrors.h +296 -0
- package/include/freetype2/freetype/ftfntfmt.h +93 -0
- package/include/freetype2/freetype/ftgasp.h +143 -0
- package/include/freetype2/freetype/ftglyph.h +750 -0
- package/include/freetype2/freetype/ftgxval.h +354 -0
- package/include/freetype2/freetype/ftgzip.h +151 -0
- package/include/freetype2/freetype/ftimage.h +1284 -0
- package/include/freetype2/freetype/ftincrem.h +348 -0
- package/include/freetype2/freetype/ftlcdfil.h +323 -0
- package/include/freetype2/freetype/ftlist.h +296 -0
- package/include/freetype2/freetype/ftlzw.h +100 -0
- package/include/freetype2/freetype/ftmac.h +289 -0
- package/include/freetype2/freetype/ftmm.h +805 -0
- package/include/freetype2/freetype/ftmodapi.h +807 -0
- package/include/freetype2/freetype/ftmoderr.h +204 -0
- package/include/freetype2/freetype/ftotval.h +206 -0
- package/include/freetype2/freetype/ftoutln.h +588 -0
- package/include/freetype2/freetype/ftparams.h +218 -0
- package/include/freetype2/freetype/ftpfr.h +179 -0
- package/include/freetype2/freetype/ftrender.h +244 -0
- package/include/freetype2/freetype/ftsizes.h +159 -0
- package/include/freetype2/freetype/ftsnames.h +272 -0
- package/include/freetype2/freetype/ftstroke.h +773 -0
- package/include/freetype2/freetype/ftsynth.h +104 -0
- package/include/freetype2/freetype/ftsystem.h +350 -0
- package/include/freetype2/freetype/fttrigon.h +350 -0
- package/include/freetype2/freetype/fttypes.h +617 -0
- package/include/freetype2/freetype/ftwinfnt.h +276 -0
- package/include/freetype2/freetype/otsvg.h +336 -0
- package/include/freetype2/freetype/t1tables.h +793 -0
- package/include/freetype2/freetype/ttnameid.h +1235 -0
- package/include/freetype2/freetype/tttables.h +855 -0
- package/include/freetype2/freetype/tttags.h +124 -0
- package/include/freetype2/ft2build.h +42 -0
- package/include/fribidi/fribidi-arabic.h +81 -0
- package/include/fribidi/fribidi-begindecls.h +3 -0
- package/include/fribidi/fribidi-bidi-types-list.h +96 -0
- package/include/fribidi/fribidi-bidi-types.h +405 -0
- package/include/fribidi/fribidi-bidi.h +142 -0
- package/include/fribidi/fribidi-brackets.h +89 -0
- package/include/fribidi/fribidi-char-sets-list.h +54 -0
- package/include/fribidi/fribidi-char-sets.h +106 -0
- package/include/fribidi/fribidi-common.h +152 -0
- package/include/fribidi/fribidi-config.h +23 -0
- package/include/fribidi/fribidi-deprecated.h +175 -0
- package/include/fribidi/fribidi-enddecls.h +3 -0
- package/include/fribidi/fribidi-flags.h +72 -0
- package/include/fribidi/fribidi-joining-types-list.h +44 -0
- package/include/fribidi/fribidi-joining-types.h +249 -0
- package/include/fribidi/fribidi-joining.h +74 -0
- package/include/fribidi/fribidi-mirroring.h +86 -0
- package/include/fribidi/fribidi-shape.h +71 -0
- package/include/fribidi/fribidi-types.h +79 -0
- package/include/fribidi/fribidi-unicode-version.h +10 -0
- package/include/fribidi/fribidi-unicode.h +105 -0
- package/include/fribidi/fribidi.h +129 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +221 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +37 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +525 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +40 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +115 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +481 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +113 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +718 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +33 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +70 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +168 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +46 -0
- package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +165 -0
- package/include/gio-unix-2.0/gio/gdesktopappinfo.h +200 -0
- package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +67 -0
- package/include/gio-unix-2.0/gio/gunixfdmessage.h +86 -0
- package/include/gio-unix-2.0/gio/gunixinputstream.h +85 -0
- package/include/gio-unix-2.0/gio/gunixmounts.h +172 -0
- package/include/gio-unix-2.0/gio/gunixoutputstream.h +84 -0
- package/include/glib-2.0/gio/gaction.h +100 -0
- package/include/glib-2.0/gio/gactiongroup.h +163 -0
- package/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
- package/include/glib-2.0/gio/gactionmap.h +101 -0
- package/include/glib-2.0/gio/gappinfo.h +369 -0
- package/include/glib-2.0/gio/gapplication.h +257 -0
- package/include/glib-2.0/gio/gapplicationcommandline.h +124 -0
- package/include/glib-2.0/gio/gasyncinitable.h +132 -0
- package/include/glib-2.0/gio/gasyncresult.h +87 -0
- package/include/glib-2.0/gio/gbufferedinputstream.h +135 -0
- package/include/glib-2.0/gio/gbufferedoutputstream.h +88 -0
- package/include/glib-2.0/gio/gbytesicon.h +54 -0
- package/include/glib-2.0/gio/gcancellable.h +120 -0
- package/include/glib-2.0/gio/gcharsetconverter.h +65 -0
- package/include/glib-2.0/gio/gcontenttype.h +84 -0
- package/include/glib-2.0/gio/gconverter.h +98 -0
- package/include/glib-2.0/gio/gconverterinputstream.h +82 -0
- package/include/glib-2.0/gio/gconverteroutputstream.h +82 -0
- package/include/glib-2.0/gio/gcredentials.h +87 -0
- package/include/glib-2.0/gio/gdatagrambased.h +146 -0
- package/include/glib-2.0/gio/gdatainputstream.h +182 -0
- package/include/glib-2.0/gio/gdataoutputstream.h +127 -0
- package/include/glib-2.0/gio/gdbusactiongroup.h +56 -0
- package/include/glib-2.0/gio/gdbusaddress.h +67 -0
- package/include/glib-2.0/gio/gdbusauthobserver.h +53 -0
- package/include/glib-2.0/gio/gdbusconnection.h +691 -0
- package/include/glib-2.0/gio/gdbuserror.h +111 -0
- package/include/glib-2.0/gio/gdbusinterface.h +83 -0
- package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +129 -0
- package/include/glib-2.0/gio/gdbusintrospection.h +327 -0
- package/include/glib-2.0/gio/gdbusmenumodel.h +47 -0
- package/include/glib-2.0/gio/gdbusmessage.h +204 -0
- package/include/glib-2.0/gio/gdbusmethodinvocation.h +136 -0
- package/include/glib-2.0/gio/gdbusnameowning.h +117 -0
- package/include/glib-2.0/gio/gdbusnamewatching.h +104 -0
- package/include/glib-2.0/gio/gdbusobject.h +80 -0
- package/include/glib-2.0/gio/gdbusobjectmanager.h +96 -0
- package/include/glib-2.0/gio/gdbusobjectmanagerclient.h +148 -0
- package/include/glib-2.0/gio/gdbusobjectmanagerserver.h +95 -0
- package/include/glib-2.0/gio/gdbusobjectproxy.h +81 -0
- package/include/glib-2.0/gio/gdbusobjectskeleton.h +98 -0
- package/include/glib-2.0/gio/gdbusproxy.h +220 -0
- package/include/glib-2.0/gio/gdbusserver.h +62 -0
- package/include/glib-2.0/gio/gdbusutils.h +65 -0
- package/include/glib-2.0/gio/gdebugcontroller.h +81 -0
- package/include/glib-2.0/gio/gdebugcontrollerdbus.h +71 -0
- package/include/glib-2.0/gio/gdrive.h +274 -0
- package/include/glib-2.0/gio/gdtlsclientconnection.h +77 -0
- package/include/glib-2.0/gio/gdtlsconnection.h +230 -0
- package/include/glib-2.0/gio/gdtlsserverconnection.h +71 -0
- package/include/glib-2.0/gio/gemblem.h +63 -0
- package/include/glib-2.0/gio/gemblemedicon.h +83 -0
- package/include/glib-2.0/gio/gfile.h +1359 -0
- package/include/glib-2.0/gio/gfileattribute.h +86 -0
- package/include/glib-2.0/gio/gfileenumerator.h +154 -0
- package/include/glib-2.0/gio/gfileicon.h +59 -0
- package/include/glib-2.0/gio/gfileinfo.h +1546 -0
- package/include/glib-2.0/gio/gfileinputstream.h +116 -0
- package/include/glib-2.0/gio/gfileiostream.h +123 -0
- package/include/glib-2.0/gio/gfilemonitor.h +100 -0
- package/include/glib-2.0/gio/gfilenamecompleter.h +81 -0
- package/include/glib-2.0/gio/gfileoutputstream.h +124 -0
- package/include/glib-2.0/gio/gfilterinputstream.h +80 -0
- package/include/glib-2.0/gio/gfilteroutputstream.h +80 -0
- package/include/glib-2.0/gio/gicon.h +133 -0
- package/include/glib-2.0/gio/ginetaddress.h +125 -0
- package/include/glib-2.0/gio/ginetaddressmask.h +86 -0
- package/include/glib-2.0/gio/ginetsocketaddress.h +80 -0
- package/include/glib-2.0/gio/ginitable.h +107 -0
- package/include/glib-2.0/gio/ginputstream.h +218 -0
- package/include/glib-2.0/gio/gio-autocleanups.h +155 -0
- package/include/glib-2.0/gio/gio-visibility.h +952 -0
- package/include/glib-2.0/gio/gio.h +186 -0
- package/include/glib-2.0/gio/gioenums.h +2149 -0
- package/include/glib-2.0/gio/gioenumtypes.h +207 -0
- package/include/glib-2.0/gio/gioerror.h +58 -0
- package/include/glib-2.0/gio/giomodule.h +199 -0
- package/include/glib-2.0/gio/gioscheduler.h +56 -0
- package/include/glib-2.0/gio/giostream.h +137 -0
- package/include/glib-2.0/gio/giotypes.h +660 -0
- package/include/glib-2.0/gio/glistmodel.h +74 -0
- package/include/glib-2.0/gio/gliststore.h +97 -0
- package/include/glib-2.0/gio/gloadableicon.h +101 -0
- package/include/glib-2.0/gio/gmemoryinputstream.h +92 -0
- package/include/glib-2.0/gio/gmemorymonitor.h +64 -0
- package/include/glib-2.0/gio/gmemoryoutputstream.h +109 -0
- package/include/glib-2.0/gio/gmenu.h +184 -0
- package/include/glib-2.0/gio/gmenuexporter.h +55 -0
- package/include/glib-2.0/gio/gmenumodel.h +307 -0
- package/include/glib-2.0/gio/gmount.h +278 -0
- package/include/glib-2.0/gio/gmountoperation.h +179 -0
- package/include/glib-2.0/gio/gnativesocketaddress.h +67 -0
- package/include/glib-2.0/gio/gnativevolumemonitor.h +63 -0
- package/include/glib-2.0/gio/gnetworkaddress.h +82 -0
- package/include/glib-2.0/gio/gnetworking.h +81 -0
- package/include/glib-2.0/gio/gnetworkmonitor.h +101 -0
- package/include/glib-2.0/gio/gnetworkservice.h +77 -0
- package/include/glib-2.0/gio/gnotification.h +103 -0
- package/include/glib-2.0/gio/goutputstream.h +334 -0
- package/include/glib-2.0/gio/gpermission.h +129 -0
- package/include/glib-2.0/gio/gpollableinputstream.h +106 -0
- package/include/glib-2.0/gio/gpollableoutputstream.h +127 -0
- package/include/glib-2.0/gio/gpollableutils.h +66 -0
- package/include/glib-2.0/gio/gpowerprofilemonitor.h +65 -0
- package/include/glib-2.0/gio/gpropertyaction.h +49 -0
- package/include/glib-2.0/gio/gproxy.h +130 -0
- package/include/glib-2.0/gio/gproxyaddress.h +88 -0
- package/include/glib-2.0/gio/gproxyaddressenumerator.h +83 -0
- package/include/glib-2.0/gio/gproxyresolver.h +97 -0
- package/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
- package/include/glib-2.0/gio/gresolver.h +299 -0
- package/include/glib-2.0/gio/gresource.h +132 -0
- package/include/glib-2.0/gio/gseekable.h +105 -0
- package/include/glib-2.0/gio/gsettings.h +347 -0
- package/include/glib-2.0/gio/gsettingsbackend.h +176 -0
- package/include/glib-2.0/gio/gsettingsschema.h +115 -0
- package/include/glib-2.0/gio/gsimpleaction.h +65 -0
- package/include/glib-2.0/gio/gsimpleactiongroup.h +99 -0
- package/include/glib-2.0/gio/gsimpleasyncresult.h +164 -0
- package/include/glib-2.0/gio/gsimpleiostream.h +47 -0
- package/include/glib-2.0/gio/gsimplepermission.h +47 -0
- package/include/glib-2.0/gio/gsimpleproxyresolver.h +91 -0
- package/include/glib-2.0/gio/gsocket.h +330 -0
- package/include/glib-2.0/gio/gsocketaddress.h +84 -0
- package/include/glib-2.0/gio/gsocketaddressenumerator.h +103 -0
- package/include/glib-2.0/gio/gsocketclient.h +199 -0
- package/include/glib-2.0/gio/gsocketconnectable.h +83 -0
- package/include/glib-2.0/gio/gsocketconnection.h +117 -0
- package/include/glib-2.0/gio/gsocketcontrolmessage.h +113 -0
- package/include/glib-2.0/gio/gsocketlistener.h +157 -0
- package/include/glib-2.0/gio/gsocketservice.h +95 -0
- package/include/glib-2.0/gio/gsrvtarget.h +60 -0
- package/include/glib-2.0/gio/gsubprocess.h +169 -0
- package/include/glib-2.0/gio/gsubprocesslauncher.h +121 -0
- package/include/glib-2.0/gio/gtask.h +207 -0
- package/include/glib-2.0/gio/gtcpconnection.h +71 -0
- package/include/glib-2.0/gio/gtcpwrapperconnection.h +71 -0
- package/include/glib-2.0/gio/gtestdbus.h +74 -0
- package/include/glib-2.0/gio/gthemedicon.h +70 -0
- package/include/glib-2.0/gio/gthreadedsocketservice.h +83 -0
- package/include/glib-2.0/gio/gtlsbackend.h +115 -0
- package/include/glib-2.0/gio/gtlscertificate.h +125 -0
- package/include/glib-2.0/gio/gtlsclientconnection.h +88 -0
- package/include/glib-2.0/gio/gtlsconnection.h +214 -0
- package/include/glib-2.0/gio/gtlsdatabase.h +249 -0
- package/include/glib-2.0/gio/gtlsfiledatabase.h +60 -0
- package/include/glib-2.0/gio/gtlsinteraction.h +150 -0
- package/include/glib-2.0/gio/gtlspassword.h +121 -0
- package/include/glib-2.0/gio/gtlsserverconnection.h +71 -0
- package/include/glib-2.0/gio/gunixconnection.h +102 -0
- package/include/glib-2.0/gio/gunixcredentialsmessage.h +89 -0
- package/include/glib-2.0/gio/gunixfdlist.h +97 -0
- package/include/glib-2.0/gio/gunixsocketaddress.h +83 -0
- package/include/glib-2.0/gio/gvfs.h +170 -0
- package/include/glib-2.0/gio/gvolume.h +255 -0
- package/include/glib-2.0/gio/gvolumemonitor.h +156 -0
- package/include/glib-2.0/gio/gzlibcompressor.h +64 -0
- package/include/glib-2.0/gio/gzlibdecompressor.h +60 -0
- package/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
- package/include/glib-2.0/glib/deprecated/gcache.h +77 -0
- package/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
- package/include/glib-2.0/glib/deprecated/gmain.h +137 -0
- package/include/glib-2.0/glib/deprecated/grel.h +107 -0
- package/include/glib-2.0/glib/deprecated/gthread.h +295 -0
- package/include/glib-2.0/glib/galloca.h +147 -0
- package/include/glib-2.0/glib/garray.h +323 -0
- package/include/glib-2.0/glib/gasyncqueue.h +126 -0
- package/include/glib-2.0/glib/gatomic.h +587 -0
- package/include/glib-2.0/glib/gbacktrace.h +74 -0
- package/include/glib-2.0/glib/gbase64.h +63 -0
- package/include/glib-2.0/glib/gbitlock.h +78 -0
- package/include/glib-2.0/glib/gbookmarkfile.h +300 -0
- package/include/glib-2.0/glib/gbytes.h +99 -0
- package/include/glib-2.0/glib/gcharset.h +49 -0
- package/include/glib-2.0/glib/gchecksum.h +106 -0
- package/include/glib-2.0/glib/gconvert.h +179 -0
- package/include/glib-2.0/glib/gdataset.h +156 -0
- package/include/glib-2.0/glib/gdate.h +309 -0
- package/include/glib-2.0/glib/gdatetime.h +275 -0
- package/include/glib-2.0/glib/gdir.h +54 -0
- package/include/glib-2.0/glib/genviron.h +65 -0
- package/include/glib-2.0/glib/gerror.h +263 -0
- package/include/glib-2.0/glib/gfileutils.h +223 -0
- package/include/glib-2.0/glib/ggettext.h +65 -0
- package/include/glib-2.0/glib/ghash.h +206 -0
- package/include/glib-2.0/glib/ghmac.h +85 -0
- package/include/glib-2.0/glib/ghook.h +204 -0
- package/include/glib-2.0/glib/ghostutils.h +45 -0
- package/include/glib-2.0/glib/gi18n-lib.h +38 -0
- package/include/glib-2.0/glib/gi18n.h +34 -0
- package/include/glib-2.0/glib/giochannel.h +407 -0
- package/include/glib-2.0/glib/gkeyfile.h +332 -0
- package/include/glib-2.0/glib/glib-autocleanups.h +105 -0
- package/include/glib-2.0/glib/glib-typeof.h +47 -0
- package/include/glib-2.0/glib/glib-visibility.h +952 -0
- package/include/glib-2.0/glib/glist.h +179 -0
- package/include/glib-2.0/glib/gmacros.h +1425 -0
- package/include/glib-2.0/glib/gmain.h +862 -0
- package/include/glib-2.0/glib/gmappedfile.h +60 -0
- package/include/glib-2.0/glib/gmarkup.h +265 -0
- package/include/glib-2.0/glib/gmem.h +425 -0
- package/include/glib-2.0/glib/gmessages.h +690 -0
- package/include/glib-2.0/glib/gnode.h +309 -0
- package/include/glib-2.0/glib/goption.h +409 -0
- package/include/glib-2.0/glib/gpathbuf.h +90 -0
- package/include/glib-2.0/glib/gpattern.h +65 -0
- package/include/glib-2.0/glib/gpoll.h +122 -0
- package/include/glib-2.0/glib/gprimes.h +52 -0
- package/include/glib-2.0/glib/gprintf.h +59 -0
- package/include/glib-2.0/glib/gqsort.h +47 -0
- package/include/glib-2.0/glib/gquark.h +70 -0
- package/include/glib-2.0/glib/gqueue.h +205 -0
- package/include/glib-2.0/glib/grand.h +101 -0
- package/include/glib-2.0/glib/grcbox.h +91 -0
- package/include/glib-2.0/glib/grefcount.h +179 -0
- package/include/glib-2.0/glib/grefstring.h +59 -0
- package/include/glib-2.0/glib/gscanner.h +301 -0
- package/include/glib-2.0/glib/gsequence.h +175 -0
- package/include/glib-2.0/glib/gshell.h +59 -0
- package/include/glib-2.0/glib/gslice.h +117 -0
- package/include/glib-2.0/glib/gslist.h +166 -0
- package/include/glib-2.0/glib/gspawn.h +323 -0
- package/include/glib-2.0/glib/gstdio.h +231 -0
- package/include/glib-2.0/glib/gstrfuncs.h +504 -0
- package/include/glib-2.0/glib/gstring.h +296 -0
- package/include/glib-2.0/glib/gstringchunk.h +59 -0
- package/include/glib-2.0/glib/gstrvbuilder.h +69 -0
- package/include/glib-2.0/glib/gtestutils.h +763 -0
- package/include/glib-2.0/glib/gthread.h +603 -0
- package/include/glib-2.0/glib/gthreadpool.h +105 -0
- package/include/glib-2.0/glib/gtimer.h +80 -0
- package/include/glib-2.0/glib/gtimezone.h +98 -0
- package/include/glib-2.0/glib/gtrashstack.h +60 -0
- package/include/glib-2.0/glib/gtree.h +181 -0
- package/include/glib-2.0/glib/gtypes.h +591 -0
- package/include/glib-2.0/glib/gunicode.h +974 -0
- package/include/glib-2.0/glib/guri.h +420 -0
- package/include/glib-2.0/glib/gutils.h +479 -0
- package/include/glib-2.0/glib/guuid.h +42 -0
- package/include/glib-2.0/glib/gvariant.h +541 -0
- package/include/glib-2.0/glib/gvarianttype.h +384 -0
- package/include/glib-2.0/glib/gversion.h +57 -0
- package/include/glib-2.0/glib/gversionmacros.h +490 -0
- package/include/glib-2.0/glib/gwin32.h +142 -0
- package/include/glib-2.0/glib-object.h +46 -0
- package/include/glib-2.0/glib-unix.h +125 -0
- package/include/glib-2.0/glib.h +121 -0
- package/include/glib-2.0/gmodule/gmodule-visibility.h +952 -0
- package/include/glib-2.0/gmodule.h +147 -0
- package/include/glib-2.0/gobject/gbinding.h +156 -0
- package/include/glib-2.0/gobject/gbindinggroup.h +85 -0
- package/include/glib-2.0/gobject/gboxed.h +124 -0
- package/include/glib-2.0/gobject/gclosure.h +323 -0
- package/include/glib-2.0/gobject/genums.h +381 -0
- package/include/glib-2.0/gobject/glib-enumtypes.h +25 -0
- package/include/glib-2.0/gobject/glib-types.h +400 -0
- package/include/glib-2.0/gobject/gmarshal.h +434 -0
- package/include/glib-2.0/gobject/gobject-autocleanups.h +33 -0
- package/include/glib-2.0/gobject/gobject-visibility.h +952 -0
- package/include/glib-2.0/gobject/gobject.h +953 -0
- package/include/glib-2.0/gobject/gobjectnotifyqueue.c +199 -0
- package/include/glib-2.0/gobject/gparam.h +476 -0
- package/include/glib-2.0/gobject/gparamspecs.h +1151 -0
- package/include/glib-2.0/gobject/gsignal.h +647 -0
- package/include/glib-2.0/gobject/gsignalgroup.h +98 -0
- package/include/glib-2.0/gobject/gsourceclosure.h +40 -0
- package/include/glib-2.0/gobject/gtype.h +2703 -0
- package/include/glib-2.0/gobject/gtypemodule.h +302 -0
- package/include/glib-2.0/gobject/gtypeplugin.h +136 -0
- package/include/glib-2.0/gobject/gvalue.h +212 -0
- package/include/glib-2.0/gobject/gvaluearray.h +106 -0
- package/include/glib-2.0/gobject/gvaluecollector.h +290 -0
- package/include/glib-2.0/gobject/gvaluetypes.h +318 -0
- package/include/harfbuzz/hb-aat-layout.h +795 -0
- package/include/harfbuzz/hb-aat.h +38 -0
- package/include/harfbuzz/hb-blob.h +160 -0
- package/include/harfbuzz/hb-buffer.h +799 -0
- package/include/harfbuzz/hb-common.h +938 -0
- package/include/harfbuzz/hb-cplusplus.hh +223 -0
- package/include/harfbuzz/hb-deprecated.h +309 -0
- package/include/harfbuzz/hb-draw.h +340 -0
- package/include/harfbuzz/hb-face.h +187 -0
- package/include/harfbuzz/hb-features.h +119 -0
- package/include/harfbuzz/hb-font.h +1153 -0
- package/include/harfbuzz/hb-ft.h +145 -0
- package/include/harfbuzz/hb-glib.h +56 -0
- package/include/harfbuzz/hb-map.h +143 -0
- package/include/harfbuzz/hb-ot-color.h +155 -0
- package/include/harfbuzz/hb-ot-deprecated.h +147 -0
- package/include/harfbuzz/hb-ot-font.h +45 -0
- package/include/harfbuzz/hb-ot-layout.h +549 -0
- package/include/harfbuzz/hb-ot-math.h +333 -0
- package/include/harfbuzz/hb-ot-meta.h +72 -0
- package/include/harfbuzz/hb-ot-metrics.h +129 -0
- package/include/harfbuzz/hb-ot-name.h +164 -0
- package/include/harfbuzz/hb-ot-shape.h +53 -0
- package/include/harfbuzz/hb-ot-var.h +191 -0
- package/include/harfbuzz/hb-ot.h +49 -0
- package/include/harfbuzz/hb-paint.h +1029 -0
- package/include/harfbuzz/hb-set.h +203 -0
- package/include/harfbuzz/hb-shape-plan.h +122 -0
- package/include/harfbuzz/hb-shape.h +74 -0
- package/include/harfbuzz/hb-style.h +81 -0
- package/include/harfbuzz/hb-subset-repacker.h +81 -0
- package/include/harfbuzz/hb-subset.h +241 -0
- package/include/harfbuzz/hb-unicode.h +643 -0
- package/include/harfbuzz/hb-version.h +95 -0
- package/include/harfbuzz/hb.h +51 -0
- package/include/index.js +1 -0
- package/include/jconfig.h +37 -0
- package/include/jerror.h +335 -0
- package/include/jmorecfg.h +382 -0
- package/include/jpeglib.h +1210 -0
- package/include/lcms2.h +1958 -0
- package/include/lcms2_plugin.h +700 -0
- package/include/libexif/_stdint.h +2 -0
- package/include/libexif/exif-byte-order.h +48 -0
- package/include/libexif/exif-content.h +181 -0
- package/include/libexif/exif-data-type.h +46 -0
- package/include/libexif/exif-data.h +267 -0
- package/include/libexif/exif-entry.h +186 -0
- package/include/libexif/exif-format.h +65 -0
- package/include/libexif/exif-ifd.h +51 -0
- package/include/libexif/exif-loader.h +128 -0
- package/include/libexif/exif-log.h +116 -0
- package/include/libexif/exif-mem.h +91 -0
- package/include/libexif/exif-mnote-data.h +122 -0
- package/include/libexif/exif-tag.h +307 -0
- package/include/libexif/exif-utils.h +194 -0
- package/include/libheif/heif.h +2092 -0
- package/include/libheif/heif_cxx.h +1359 -0
- package/include/libheif/heif_plugin.h +306 -0
- package/include/libheif/heif_version.h +38 -0
- package/include/libimagequant.h +111 -0
- package/include/libpng16/png.h +3247 -0
- package/include/libpng16/pngconf.h +623 -0
- package/include/libpng16/pnglibconf.h +219 -0
- package/include/librsvg-2.0/librsvg/rsvg-cairo.h +395 -0
- package/include/librsvg-2.0/librsvg/rsvg-features.h +184 -0
- package/include/librsvg-2.0/librsvg/rsvg-version.h +13 -0
- package/include/librsvg-2.0/librsvg/rsvg.h +1456 -0
- package/include/libxml2/libxml/HTMLparser.h +320 -0
- package/include/libxml2/libxml/HTMLtree.h +147 -0
- package/include/libxml2/libxml/SAX.h +204 -0
- package/include/libxml2/libxml/SAX2.h +173 -0
- package/include/libxml2/libxml/c14n.h +128 -0
- package/include/libxml2/libxml/catalog.h +182 -0
- package/include/libxml2/libxml/chvalid.h +230 -0
- package/include/libxml2/libxml/debugXML.h +217 -0
- package/include/libxml2/libxml/dict.h +81 -0
- package/include/libxml2/libxml/encoding.h +233 -0
- package/include/libxml2/libxml/entities.h +151 -0
- package/include/libxml2/libxml/globals.h +529 -0
- package/include/libxml2/libxml/hash.h +236 -0
- package/include/libxml2/libxml/list.h +137 -0
- package/include/libxml2/libxml/nanoftp.h +186 -0
- package/include/libxml2/libxml/nanohttp.h +81 -0
- package/include/libxml2/libxml/parser.h +1265 -0
- package/include/libxml2/libxml/parserInternals.h +662 -0
- package/include/libxml2/libxml/pattern.h +100 -0
- package/include/libxml2/libxml/relaxng.h +218 -0
- package/include/libxml2/libxml/schemasInternals.h +958 -0
- package/include/libxml2/libxml/schematron.h +142 -0
- package/include/libxml2/libxml/threads.h +94 -0
- package/include/libxml2/libxml/tree.h +1314 -0
- package/include/libxml2/libxml/uri.h +94 -0
- package/include/libxml2/libxml/valid.h +448 -0
- package/include/libxml2/libxml/xinclude.h +129 -0
- package/include/libxml2/libxml/xlink.h +189 -0
- package/include/libxml2/libxml/xmlIO.h +369 -0
- package/include/libxml2/libxml/xmlautomata.h +146 -0
- package/include/libxml2/libxml/xmlerror.h +919 -0
- package/include/libxml2/libxml/xmlexports.h +50 -0
- package/include/libxml2/libxml/xmlmemory.h +228 -0
- package/include/libxml2/libxml/xmlmodule.h +57 -0
- package/include/libxml2/libxml/xmlreader.h +428 -0
- package/include/libxml2/libxml/xmlregexp.h +222 -0
- package/include/libxml2/libxml/xmlsave.h +88 -0
- package/include/libxml2/libxml/xmlschemas.h +246 -0
- package/include/libxml2/libxml/xmlschemastypes.h +152 -0
- package/include/libxml2/libxml/xmlstring.h +140 -0
- package/include/libxml2/libxml/xmlunicode.h +202 -0
- package/include/libxml2/libxml/xmlversion.h +526 -0
- package/include/libxml2/libxml/xmlwriter.h +488 -0
- package/include/libxml2/libxml/xpath.h +575 -0
- package/include/libxml2/libxml/xpathInternals.h +632 -0
- package/include/libxml2/libxml/xpointer.h +137 -0
- package/include/orc-0.4/orc/orc-stdint.h +1 -0
- package/include/orc-0.4/orc/orc.h +16 -0
- package/include/orc-0.4/orc/orcarm.h +879 -0
- package/include/orc-0.4/orc/orcbytecode.h +35 -0
- package/include/orc-0.4/orc/orcbytecodes.h +255 -0
- package/include/orc-0.4/orc/orccode.h +53 -0
- package/include/orc-0.4/orc/orccompiler.h +176 -0
- package/include/orc-0.4/orc/orcconstant.h +39 -0
- package/include/orc-0.4/orc/orccpu.h +21 -0
- package/include/orc-0.4/orc/orccpuinsn.h +40 -0
- package/include/orc-0.4/orc/orcdebug.h +158 -0
- package/include/orc-0.4/orc/orcemulateopcodes.h +203 -0
- package/include/orc-0.4/orc/orcexecutor.h +135 -0
- package/include/orc-0.4/orc/orcfunctions.h +93 -0
- package/include/orc-0.4/orc/orcinstruction.h +39 -0
- package/include/orc-0.4/orc/orcinternal.h +46 -0
- package/include/orc-0.4/orc/orclimits.h +94 -0
- package/include/orc-0.4/orc/orcmips.h +229 -0
- package/include/orc-0.4/orc/orcmmx.h +79 -0
- package/include/orc-0.4/orc/orcneon.h +43 -0
- package/include/orc-0.4/orc/orconce.h +166 -0
- package/include/orc-0.4/orc/orcopcode.h +63 -0
- package/include/orc-0.4/orc/orcparse.h +27 -0
- package/include/orc-0.4/orc/orcpowerpc.h +209 -0
- package/include/orc-0.4/orc/orcprogram.h +192 -0
- package/include/orc-0.4/orc/orcrule.h +52 -0
- package/include/orc-0.4/orc/orcsse.h +55 -0
- package/include/orc-0.4/orc/orctarget.h +115 -0
- package/include/orc-0.4/orc/orcutils.h +238 -0
- package/include/orc-0.4/orc/orcvariable.h +81 -0
- package/include/orc-0.4/orc/orcx86.h +199 -0
- package/include/orc-0.4/orc/orcx86insn.h +672 -0
- package/include/pango-1.0/pango/pango-attributes.h +748 -0
- package/include/pango-1.0/pango/pango-bidi-type.h +117 -0
- package/include/pango-1.0/pango/pango-break.h +144 -0
- package/include/pango-1.0/pango/pango-color.h +75 -0
- package/include/pango-1.0/pango/pango-context.h +116 -0
- package/include/pango-1.0/pango/pango-coverage.h +108 -0
- package/include/pango-1.0/pango/pango-direction.h +72 -0
- package/include/pango-1.0/pango/pango-engine.h +457 -0
- package/include/pango-1.0/pango/pango-enum-types.h +120 -0
- package/include/pango-1.0/pango/pango-features.h +10 -0
- package/include/pango-1.0/pango/pango-font.h +699 -0
- package/include/pango-1.0/pango/pango-fontmap.h +132 -0
- package/include/pango-1.0/pango/pango-fontset-simple.h +64 -0
- package/include/pango-1.0/pango/pango-fontset.h +134 -0
- package/include/pango-1.0/pango/pango-glyph-item.h +175 -0
- package/include/pango-1.0/pango/pango-glyph.h +270 -0
- package/include/pango-1.0/pango/pango-gravity.h +137 -0
- package/include/pango-1.0/pango/pango-item.h +165 -0
- package/include/pango-1.0/pango/pango-language.h +70 -0
- package/include/pango-1.0/pango/pango-layout.h +554 -0
- package/include/pango-1.0/pango/pango-markup.h +52 -0
- package/include/pango-1.0/pango/pango-matrix.h +130 -0
- package/include/pango-1.0/pango/pango-modules.h +84 -0
- package/include/pango-1.0/pango/pango-ot.h +427 -0
- package/include/pango-1.0/pango/pango-renderer.h +290 -0
- package/include/pango-1.0/pango/pango-script.h +335 -0
- package/include/pango-1.0/pango/pango-tabs.h +117 -0
- package/include/pango-1.0/pango/pango-types.h +244 -0
- package/include/pango-1.0/pango/pango-utils.h +187 -0
- package/include/pango-1.0/pango/pango-version-macros.h +756 -0
- package/include/pango-1.0/pango/pango.h +54 -0
- package/include/pango-1.0/pango/pangocairo.h +220 -0
- package/include/pango-1.0/pango/pangofc-decoder.h +122 -0
- package/include/pango-1.0/pango/pangofc-font.h +120 -0
- package/include/pango-1.0/pango/pangofc-fontmap.h +244 -0
- package/include/pango-1.0/pango/pangoft2.h +158 -0
- package/include/pixman-1/pixman-version.h +54 -0
- package/include/pixman-1/pixman.h +1419 -0
- package/include/png.h +3247 -0
- package/include/pngconf.h +623 -0
- package/include/pnglibconf.h +219 -0
- package/include/spng.h +537 -0
- package/include/tiff.h +899 -0
- package/include/tiffconf.h +145 -0
- package/include/tiffio.h +653 -0
- package/include/tiffvers.h +36 -0
- package/include/vips/VConnection8.h +150 -0
- package/include/vips/VError8.h +76 -0
- package/include/vips/VImage8.h +6065 -0
- package/include/vips/VInterpolate8.h +77 -0
- package/include/vips/VRegion8.h +155 -0
- package/include/vips/arithmetic.h +571 -0
- package/include/vips/basic.h +113 -0
- package/include/vips/buf.h +118 -0
- package/include/vips/colour.h +306 -0
- package/include/vips/connection.h +570 -0
- package/include/vips/conversion.h +357 -0
- package/include/vips/convolution.h +95 -0
- package/include/vips/create.h +161 -0
- package/include/vips/dbuf.h +103 -0
- package/include/vips/debug.h +74 -0
- package/include/vips/draw.h +113 -0
- package/include/vips/enumtypes.h +181 -0
- package/include/vips/error.h +142 -0
- package/include/vips/foreign.h +993 -0
- package/include/vips/format.h +135 -0
- package/include/vips/freqfilt.h +64 -0
- package/include/vips/gate.h +82 -0
- package/include/vips/generate.h +92 -0
- package/include/vips/header.h +312 -0
- package/include/vips/histogram.h +85 -0
- package/include/vips/image.h +605 -0
- package/include/vips/interpolate.h +141 -0
- package/include/vips/memory.h +96 -0
- package/include/vips/morphology.h +73 -0
- package/include/vips/mosaicing.h +80 -0
- package/include/vips/object.h +706 -0
- package/include/vips/operation.h +182 -0
- package/include/vips/private.h +227 -0
- package/include/vips/rect.h +80 -0
- package/include/vips/region.h +238 -0
- package/include/vips/resample.h +123 -0
- package/include/vips/sbuf.h +144 -0
- package/include/vips/semaphore.h +77 -0
- package/include/vips/thread.h +72 -0
- package/include/vips/threadpool.h +160 -0
- package/include/vips/transform.h +89 -0
- package/include/vips/type.h +305 -0
- package/include/vips/util.h +406 -0
- package/include/vips/vector.h +183 -0
- package/include/vips/version.h +26 -0
- package/include/vips/vips.h +194 -0
- package/include/vips/vips8 +60 -0
- package/include/webp/decode.h +504 -0
- package/include/webp/demux.h +363 -0
- package/include/webp/encode.h +552 -0
- package/include/webp/mux.h +530 -0
- package/include/webp/mux_types.h +98 -0
- package/include/webp/sharpyuv/sharpyuv.h +103 -0
- package/include/webp/sharpyuv/sharpyuv_csp.h +60 -0
- package/include/webp/types.h +72 -0
- package/include/zconf.h +203 -0
- package/include/zlib.h +1855 -0
- package/include/zlib_name_mangling.h +8 -0
- package/package.json +30 -0
- package/versions.json +31 -0
|
@@ -0,0 +1,603 @@
|
|
|
1
|
+
/* GLIB - Library of useful routines for C programming
|
|
2
|
+
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
5
|
+
*
|
|
6
|
+
* This library is free software; you can redistribute it and/or
|
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
* License as published by the Free Software Foundation; either
|
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* This library is distributed in the hope that it will be useful, but
|
|
12
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
* Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
|
22
|
+
* file for a list of people on the GLib Team. See the ChangeLog
|
|
23
|
+
* files for a list of changes. These files are distributed with
|
|
24
|
+
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef __G_THREAD_H__
|
|
28
|
+
#define __G_THREAD_H__
|
|
29
|
+
|
|
30
|
+
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
|
31
|
+
#error "Only <glib.h> can be included directly."
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#include <glib/gatomic.h>
|
|
35
|
+
#include <glib/gerror.h>
|
|
36
|
+
#include <glib/gutils.h>
|
|
37
|
+
|
|
38
|
+
G_BEGIN_DECLS
|
|
39
|
+
|
|
40
|
+
#define G_THREAD_ERROR g_thread_error_quark ()
|
|
41
|
+
GLIB_AVAILABLE_IN_ALL
|
|
42
|
+
GQuark g_thread_error_quark (void);
|
|
43
|
+
|
|
44
|
+
typedef enum
|
|
45
|
+
{
|
|
46
|
+
G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */
|
|
47
|
+
} GThreadError;
|
|
48
|
+
|
|
49
|
+
typedef gpointer (*GThreadFunc) (gpointer data);
|
|
50
|
+
|
|
51
|
+
typedef struct _GThread GThread;
|
|
52
|
+
|
|
53
|
+
typedef union _GMutex GMutex;
|
|
54
|
+
typedef struct _GRecMutex GRecMutex;
|
|
55
|
+
typedef struct _GRWLock GRWLock;
|
|
56
|
+
typedef struct _GCond GCond;
|
|
57
|
+
typedef struct _GPrivate GPrivate;
|
|
58
|
+
typedef struct _GOnce GOnce;
|
|
59
|
+
|
|
60
|
+
union _GMutex
|
|
61
|
+
{
|
|
62
|
+
/*< private >*/
|
|
63
|
+
gpointer p;
|
|
64
|
+
guint i[2];
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
struct _GRWLock
|
|
68
|
+
{
|
|
69
|
+
/*< private >*/
|
|
70
|
+
gpointer p;
|
|
71
|
+
guint i[2];
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
struct _GCond
|
|
75
|
+
{
|
|
76
|
+
/*< private >*/
|
|
77
|
+
gpointer p;
|
|
78
|
+
guint i[2];
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
struct _GRecMutex
|
|
82
|
+
{
|
|
83
|
+
/*< private >*/
|
|
84
|
+
gpointer p;
|
|
85
|
+
guint i[2];
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
#define G_PRIVATE_INIT(notify) { NULL, (notify), { NULL, NULL } }
|
|
89
|
+
struct _GPrivate
|
|
90
|
+
{
|
|
91
|
+
/*< private >*/
|
|
92
|
+
gpointer p;
|
|
93
|
+
GDestroyNotify notify;
|
|
94
|
+
gpointer future[2];
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
typedef enum
|
|
98
|
+
{
|
|
99
|
+
G_ONCE_STATUS_NOTCALLED,
|
|
100
|
+
G_ONCE_STATUS_PROGRESS,
|
|
101
|
+
G_ONCE_STATUS_READY
|
|
102
|
+
} GOnceStatus;
|
|
103
|
+
|
|
104
|
+
#define G_ONCE_INIT { G_ONCE_STATUS_NOTCALLED, NULL }
|
|
105
|
+
struct _GOnce
|
|
106
|
+
{
|
|
107
|
+
volatile GOnceStatus status;
|
|
108
|
+
volatile gpointer retval;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
#define G_LOCK_NAME(name) g__ ## name ## _lock
|
|
112
|
+
#define G_LOCK_DEFINE_STATIC(name) static G_LOCK_DEFINE (name)
|
|
113
|
+
#define G_LOCK_DEFINE(name) GMutex G_LOCK_NAME (name)
|
|
114
|
+
#define G_LOCK_EXTERN(name) extern GMutex G_LOCK_NAME (name)
|
|
115
|
+
|
|
116
|
+
#ifdef G_DEBUG_LOCKS
|
|
117
|
+
# define G_LOCK(name) G_STMT_START{ \
|
|
118
|
+
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
|
119
|
+
"file %s: line %d (%s): locking: %s ", \
|
|
120
|
+
__FILE__, __LINE__, G_STRFUNC, \
|
|
121
|
+
#name); \
|
|
122
|
+
g_mutex_lock (&G_LOCK_NAME (name)); \
|
|
123
|
+
}G_STMT_END
|
|
124
|
+
# define G_UNLOCK(name) G_STMT_START{ \
|
|
125
|
+
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
|
126
|
+
"file %s: line %d (%s): unlocking: %s ", \
|
|
127
|
+
__FILE__, __LINE__, G_STRFUNC, \
|
|
128
|
+
#name); \
|
|
129
|
+
g_mutex_unlock (&G_LOCK_NAME (name)); \
|
|
130
|
+
}G_STMT_END
|
|
131
|
+
# define G_TRYLOCK(name) \
|
|
132
|
+
(g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
|
133
|
+
"file %s: line %d (%s): try locking: %s ", \
|
|
134
|
+
__FILE__, __LINE__, G_STRFUNC, \
|
|
135
|
+
#name), g_mutex_trylock (&G_LOCK_NAME (name)))
|
|
136
|
+
#else /* !G_DEBUG_LOCKS */
|
|
137
|
+
# define G_LOCK(name) g_mutex_lock (&G_LOCK_NAME (name))
|
|
138
|
+
# define G_UNLOCK(name) g_mutex_unlock (&G_LOCK_NAME (name))
|
|
139
|
+
# define G_TRYLOCK(name) g_mutex_trylock (&G_LOCK_NAME (name))
|
|
140
|
+
#endif /* !G_DEBUG_LOCKS */
|
|
141
|
+
|
|
142
|
+
GLIB_AVAILABLE_IN_2_32
|
|
143
|
+
GThread * g_thread_ref (GThread *thread);
|
|
144
|
+
GLIB_AVAILABLE_IN_2_32
|
|
145
|
+
void g_thread_unref (GThread *thread);
|
|
146
|
+
GLIB_AVAILABLE_IN_2_32
|
|
147
|
+
GThread * g_thread_new (const gchar *name,
|
|
148
|
+
GThreadFunc func,
|
|
149
|
+
gpointer data);
|
|
150
|
+
GLIB_AVAILABLE_IN_2_32
|
|
151
|
+
GThread * g_thread_try_new (const gchar *name,
|
|
152
|
+
GThreadFunc func,
|
|
153
|
+
gpointer data,
|
|
154
|
+
GError **error);
|
|
155
|
+
GLIB_AVAILABLE_IN_ALL
|
|
156
|
+
GThread * g_thread_self (void);
|
|
157
|
+
G_NORETURN GLIB_AVAILABLE_IN_ALL
|
|
158
|
+
void g_thread_exit (gpointer retval);
|
|
159
|
+
GLIB_AVAILABLE_IN_ALL
|
|
160
|
+
gpointer g_thread_join (GThread *thread);
|
|
161
|
+
GLIB_AVAILABLE_IN_ALL
|
|
162
|
+
void g_thread_yield (void);
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
GLIB_AVAILABLE_IN_2_32
|
|
166
|
+
void g_mutex_init (GMutex *mutex);
|
|
167
|
+
GLIB_AVAILABLE_IN_2_32
|
|
168
|
+
void g_mutex_clear (GMutex *mutex);
|
|
169
|
+
GLIB_AVAILABLE_IN_ALL
|
|
170
|
+
void g_mutex_lock (GMutex *mutex);
|
|
171
|
+
GLIB_AVAILABLE_IN_ALL
|
|
172
|
+
gboolean g_mutex_trylock (GMutex *mutex);
|
|
173
|
+
GLIB_AVAILABLE_IN_ALL
|
|
174
|
+
void g_mutex_unlock (GMutex *mutex);
|
|
175
|
+
|
|
176
|
+
GLIB_AVAILABLE_IN_2_32
|
|
177
|
+
void g_rw_lock_init (GRWLock *rw_lock);
|
|
178
|
+
GLIB_AVAILABLE_IN_2_32
|
|
179
|
+
void g_rw_lock_clear (GRWLock *rw_lock);
|
|
180
|
+
GLIB_AVAILABLE_IN_2_32
|
|
181
|
+
void g_rw_lock_writer_lock (GRWLock *rw_lock);
|
|
182
|
+
GLIB_AVAILABLE_IN_2_32
|
|
183
|
+
gboolean g_rw_lock_writer_trylock (GRWLock *rw_lock);
|
|
184
|
+
GLIB_AVAILABLE_IN_2_32
|
|
185
|
+
void g_rw_lock_writer_unlock (GRWLock *rw_lock);
|
|
186
|
+
GLIB_AVAILABLE_IN_2_32
|
|
187
|
+
void g_rw_lock_reader_lock (GRWLock *rw_lock);
|
|
188
|
+
GLIB_AVAILABLE_IN_2_32
|
|
189
|
+
gboolean g_rw_lock_reader_trylock (GRWLock *rw_lock);
|
|
190
|
+
GLIB_AVAILABLE_IN_2_32
|
|
191
|
+
void g_rw_lock_reader_unlock (GRWLock *rw_lock);
|
|
192
|
+
|
|
193
|
+
GLIB_AVAILABLE_IN_2_32
|
|
194
|
+
void g_rec_mutex_init (GRecMutex *rec_mutex);
|
|
195
|
+
GLIB_AVAILABLE_IN_2_32
|
|
196
|
+
void g_rec_mutex_clear (GRecMutex *rec_mutex);
|
|
197
|
+
GLIB_AVAILABLE_IN_2_32
|
|
198
|
+
void g_rec_mutex_lock (GRecMutex *rec_mutex);
|
|
199
|
+
GLIB_AVAILABLE_IN_2_32
|
|
200
|
+
gboolean g_rec_mutex_trylock (GRecMutex *rec_mutex);
|
|
201
|
+
GLIB_AVAILABLE_IN_2_32
|
|
202
|
+
void g_rec_mutex_unlock (GRecMutex *rec_mutex);
|
|
203
|
+
|
|
204
|
+
GLIB_AVAILABLE_IN_2_32
|
|
205
|
+
void g_cond_init (GCond *cond);
|
|
206
|
+
GLIB_AVAILABLE_IN_2_32
|
|
207
|
+
void g_cond_clear (GCond *cond);
|
|
208
|
+
GLIB_AVAILABLE_IN_ALL
|
|
209
|
+
void g_cond_wait (GCond *cond,
|
|
210
|
+
GMutex *mutex);
|
|
211
|
+
GLIB_AVAILABLE_IN_ALL
|
|
212
|
+
void g_cond_signal (GCond *cond);
|
|
213
|
+
GLIB_AVAILABLE_IN_ALL
|
|
214
|
+
void g_cond_broadcast (GCond *cond);
|
|
215
|
+
GLIB_AVAILABLE_IN_2_32
|
|
216
|
+
gboolean g_cond_wait_until (GCond *cond,
|
|
217
|
+
GMutex *mutex,
|
|
218
|
+
gint64 end_time);
|
|
219
|
+
|
|
220
|
+
GLIB_AVAILABLE_IN_ALL
|
|
221
|
+
gpointer g_private_get (GPrivate *key);
|
|
222
|
+
GLIB_AVAILABLE_IN_ALL
|
|
223
|
+
void g_private_set (GPrivate *key,
|
|
224
|
+
gpointer value);
|
|
225
|
+
GLIB_AVAILABLE_IN_2_32
|
|
226
|
+
void g_private_replace (GPrivate *key,
|
|
227
|
+
gpointer value);
|
|
228
|
+
|
|
229
|
+
GLIB_AVAILABLE_IN_ALL
|
|
230
|
+
gpointer g_once_impl (GOnce *once,
|
|
231
|
+
GThreadFunc func,
|
|
232
|
+
gpointer arg);
|
|
233
|
+
GLIB_AVAILABLE_IN_ALL
|
|
234
|
+
gboolean g_once_init_enter (volatile void *location);
|
|
235
|
+
GLIB_AVAILABLE_IN_ALL
|
|
236
|
+
void g_once_init_leave (volatile void *location,
|
|
237
|
+
gsize result);
|
|
238
|
+
|
|
239
|
+
/* Use C11-style atomic extensions to check the fast path for status=ready. If
|
|
240
|
+
* they are not available, fall back to using a mutex and condition variable in
|
|
241
|
+
* g_once_impl().
|
|
242
|
+
*
|
|
243
|
+
* On the C11-style codepath, only the load of once->status needs to be atomic,
|
|
244
|
+
* as the writes to it and once->retval in g_once_impl() are related by a
|
|
245
|
+
* happens-before relation. Release-acquire semantics are defined such that any
|
|
246
|
+
* atomic/non-atomic write which happens-before a store/release is guaranteed to
|
|
247
|
+
* be seen by the load/acquire of the same atomic variable. */
|
|
248
|
+
#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) && defined(__ATOMIC_SEQ_CST)
|
|
249
|
+
# define g_once(once, func, arg) \
|
|
250
|
+
((__atomic_load_n (&(once)->status, __ATOMIC_ACQUIRE) == G_ONCE_STATUS_READY) ? \
|
|
251
|
+
(once)->retval : \
|
|
252
|
+
g_once_impl ((once), (func), (arg)))
|
|
253
|
+
#else
|
|
254
|
+
# define g_once(once, func, arg) g_once_impl ((once), (func), (arg))
|
|
255
|
+
#endif
|
|
256
|
+
|
|
257
|
+
#ifdef __GNUC__
|
|
258
|
+
# define g_once_init_enter(location) \
|
|
259
|
+
(G_GNUC_EXTENSION ({ \
|
|
260
|
+
G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
|
|
261
|
+
(void) (0 ? (gpointer) *(location) : NULL); \
|
|
262
|
+
(!g_atomic_pointer_get (location) && \
|
|
263
|
+
g_once_init_enter (location)); \
|
|
264
|
+
}))
|
|
265
|
+
# define g_once_init_leave(location, result) \
|
|
266
|
+
(G_GNUC_EXTENSION ({ \
|
|
267
|
+
G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
|
|
268
|
+
0 ? (void) (*(location) = (result)) : (void) 0; \
|
|
269
|
+
g_once_init_leave ((location), (gsize) (result)); \
|
|
270
|
+
}))
|
|
271
|
+
#else
|
|
272
|
+
# define g_once_init_enter(location) \
|
|
273
|
+
(g_once_init_enter((location)))
|
|
274
|
+
# define g_once_init_leave(location, result) \
|
|
275
|
+
(g_once_init_leave((location), (gsize) (result)))
|
|
276
|
+
#endif
|
|
277
|
+
|
|
278
|
+
GLIB_AVAILABLE_IN_2_36
|
|
279
|
+
guint g_get_num_processors (void);
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* GMutexLocker:
|
|
283
|
+
*
|
|
284
|
+
* Opaque type. See g_mutex_locker_new() for details.
|
|
285
|
+
* Since: 2.44
|
|
286
|
+
*/
|
|
287
|
+
typedef void GMutexLocker;
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* g_mutex_locker_new:
|
|
291
|
+
* @mutex: a mutex to lock
|
|
292
|
+
*
|
|
293
|
+
* Lock @mutex and return a new #GMutexLocker. Unlock with
|
|
294
|
+
* g_mutex_locker_free(). Using g_mutex_unlock() on @mutex
|
|
295
|
+
* while a #GMutexLocker exists can lead to undefined behaviour.
|
|
296
|
+
*
|
|
297
|
+
* No allocation is performed, it is equivalent to a g_mutex_lock() call.
|
|
298
|
+
*
|
|
299
|
+
* This is intended to be used with g_autoptr(). Note that g_autoptr()
|
|
300
|
+
* is only available when using GCC or clang, so the following example
|
|
301
|
+
* will only work with those compilers:
|
|
302
|
+
* |[
|
|
303
|
+
* typedef struct
|
|
304
|
+
* {
|
|
305
|
+
* ...
|
|
306
|
+
* GMutex mutex;
|
|
307
|
+
* ...
|
|
308
|
+
* } MyObject;
|
|
309
|
+
*
|
|
310
|
+
* static void
|
|
311
|
+
* my_object_do_stuff (MyObject *self)
|
|
312
|
+
* {
|
|
313
|
+
* g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&self->mutex);
|
|
314
|
+
*
|
|
315
|
+
* // Code with mutex locked here
|
|
316
|
+
*
|
|
317
|
+
* if (cond)
|
|
318
|
+
* // No need to unlock
|
|
319
|
+
* return;
|
|
320
|
+
*
|
|
321
|
+
* // Optionally early unlock
|
|
322
|
+
* g_clear_pointer (&locker, g_mutex_locker_free);
|
|
323
|
+
*
|
|
324
|
+
* // Code with mutex unlocked here
|
|
325
|
+
* }
|
|
326
|
+
* ]|
|
|
327
|
+
*
|
|
328
|
+
* Returns: a #GMutexLocker
|
|
329
|
+
* Since: 2.44
|
|
330
|
+
*/
|
|
331
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
|
|
332
|
+
static inline GMutexLocker *
|
|
333
|
+
g_mutex_locker_new (GMutex *mutex)
|
|
334
|
+
{
|
|
335
|
+
g_mutex_lock (mutex);
|
|
336
|
+
return (GMutexLocker *) mutex;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* g_mutex_locker_free:
|
|
341
|
+
* @locker: a GMutexLocker
|
|
342
|
+
*
|
|
343
|
+
* Unlock @locker's mutex. See g_mutex_locker_new() for details.
|
|
344
|
+
*
|
|
345
|
+
* No memory is freed, it is equivalent to a g_mutex_unlock() call.
|
|
346
|
+
*
|
|
347
|
+
* Since: 2.44
|
|
348
|
+
*/
|
|
349
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
|
|
350
|
+
static inline void
|
|
351
|
+
g_mutex_locker_free (GMutexLocker *locker)
|
|
352
|
+
{
|
|
353
|
+
g_mutex_unlock ((GMutex *) locker);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* GRecMutexLocker:
|
|
358
|
+
*
|
|
359
|
+
* Opaque type. See g_rec_mutex_locker_new() for details.
|
|
360
|
+
* Since: 2.60
|
|
361
|
+
*/
|
|
362
|
+
typedef void GRecMutexLocker;
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* g_rec_mutex_locker_new:
|
|
366
|
+
* @rec_mutex: a recursive mutex to lock
|
|
367
|
+
*
|
|
368
|
+
* Lock @rec_mutex and return a new #GRecMutexLocker. Unlock with
|
|
369
|
+
* g_rec_mutex_locker_free(). Using g_rec_mutex_unlock() on @rec_mutex
|
|
370
|
+
* while a #GRecMutexLocker exists can lead to undefined behaviour.
|
|
371
|
+
*
|
|
372
|
+
* No allocation is performed, it is equivalent to a g_rec_mutex_lock() call.
|
|
373
|
+
*
|
|
374
|
+
* This is intended to be used with g_autoptr(). Note that g_autoptr()
|
|
375
|
+
* is only available when using GCC or clang, so the following example
|
|
376
|
+
* will only work with those compilers:
|
|
377
|
+
* |[
|
|
378
|
+
* typedef struct
|
|
379
|
+
* {
|
|
380
|
+
* ...
|
|
381
|
+
* GRecMutex rec_mutex;
|
|
382
|
+
* ...
|
|
383
|
+
* } MyObject;
|
|
384
|
+
*
|
|
385
|
+
* static void
|
|
386
|
+
* my_object_do_stuff (MyObject *self)
|
|
387
|
+
* {
|
|
388
|
+
* g_autoptr(GRecMutexLocker) locker = g_rec_mutex_locker_new (&self->rec_mutex);
|
|
389
|
+
*
|
|
390
|
+
* // Code with rec_mutex locked here
|
|
391
|
+
*
|
|
392
|
+
* if (cond)
|
|
393
|
+
* // No need to unlock
|
|
394
|
+
* return;
|
|
395
|
+
*
|
|
396
|
+
* // Optionally early unlock
|
|
397
|
+
* g_clear_pointer (&locker, g_rec_mutex_locker_free);
|
|
398
|
+
*
|
|
399
|
+
* // Code with rec_mutex unlocked here
|
|
400
|
+
* }
|
|
401
|
+
* ]|
|
|
402
|
+
*
|
|
403
|
+
* Returns: a #GRecMutexLocker
|
|
404
|
+
* Since: 2.60
|
|
405
|
+
*/
|
|
406
|
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
407
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
|
|
408
|
+
static inline GRecMutexLocker *
|
|
409
|
+
g_rec_mutex_locker_new (GRecMutex *rec_mutex)
|
|
410
|
+
{
|
|
411
|
+
g_rec_mutex_lock (rec_mutex);
|
|
412
|
+
return (GRecMutexLocker *) rec_mutex;
|
|
413
|
+
}
|
|
414
|
+
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* g_rec_mutex_locker_free:
|
|
418
|
+
* @locker: a GRecMutexLocker
|
|
419
|
+
*
|
|
420
|
+
* Unlock @locker's recursive mutex. See g_rec_mutex_locker_new() for details.
|
|
421
|
+
*
|
|
422
|
+
* No memory is freed, it is equivalent to a g_rec_mutex_unlock() call.
|
|
423
|
+
*
|
|
424
|
+
* Since: 2.60
|
|
425
|
+
*/
|
|
426
|
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
427
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
|
|
428
|
+
static inline void
|
|
429
|
+
g_rec_mutex_locker_free (GRecMutexLocker *locker)
|
|
430
|
+
{
|
|
431
|
+
g_rec_mutex_unlock ((GRecMutex *) locker);
|
|
432
|
+
}
|
|
433
|
+
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* GRWLockWriterLocker:
|
|
437
|
+
*
|
|
438
|
+
* Opaque type. See g_rw_lock_writer_locker_new() for details.
|
|
439
|
+
* Since: 2.62
|
|
440
|
+
*/
|
|
441
|
+
typedef void GRWLockWriterLocker;
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* g_rw_lock_writer_locker_new:
|
|
445
|
+
* @rw_lock: a #GRWLock
|
|
446
|
+
*
|
|
447
|
+
* Obtain a write lock on @rw_lock and return a new #GRWLockWriterLocker.
|
|
448
|
+
* Unlock with g_rw_lock_writer_locker_free(). Using g_rw_lock_writer_unlock()
|
|
449
|
+
* on @rw_lock while a #GRWLockWriterLocker exists can lead to undefined
|
|
450
|
+
* behaviour.
|
|
451
|
+
*
|
|
452
|
+
* No allocation is performed, it is equivalent to a g_rw_lock_writer_lock() call.
|
|
453
|
+
*
|
|
454
|
+
* This is intended to be used with g_autoptr(). Note that g_autoptr()
|
|
455
|
+
* is only available when using GCC or clang, so the following example
|
|
456
|
+
* will only work with those compilers:
|
|
457
|
+
* |[
|
|
458
|
+
* typedef struct
|
|
459
|
+
* {
|
|
460
|
+
* ...
|
|
461
|
+
* GRWLock rw_lock;
|
|
462
|
+
* GPtrArray *array;
|
|
463
|
+
* ...
|
|
464
|
+
* } MyObject;
|
|
465
|
+
*
|
|
466
|
+
* static gchar *
|
|
467
|
+
* my_object_get_data (MyObject *self, guint index)
|
|
468
|
+
* {
|
|
469
|
+
* g_autoptr(GRWLockReaderLocker) locker = g_rw_lock_reader_locker_new (&self->rw_lock);
|
|
470
|
+
*
|
|
471
|
+
* // Code with a read lock obtained on rw_lock here
|
|
472
|
+
*
|
|
473
|
+
* if (self->array == NULL)
|
|
474
|
+
* // No need to unlock
|
|
475
|
+
* return NULL;
|
|
476
|
+
*
|
|
477
|
+
* if (index < self->array->len)
|
|
478
|
+
* // No need to unlock
|
|
479
|
+
* return g_ptr_array_index (self->array, index);
|
|
480
|
+
*
|
|
481
|
+
* // Optionally early unlock
|
|
482
|
+
* g_clear_pointer (&locker, g_rw_lock_reader_locker_free);
|
|
483
|
+
*
|
|
484
|
+
* // Code with rw_lock unlocked here
|
|
485
|
+
* return NULL;
|
|
486
|
+
* }
|
|
487
|
+
*
|
|
488
|
+
* static void
|
|
489
|
+
* my_object_set_data (MyObject *self, guint index, gpointer data)
|
|
490
|
+
* {
|
|
491
|
+
* g_autoptr(GRWLockWriterLocker) locker = g_rw_lock_writer_locker_new (&self->rw_lock);
|
|
492
|
+
*
|
|
493
|
+
* // Code with a write lock obtained on rw_lock here
|
|
494
|
+
*
|
|
495
|
+
* if (self->array == NULL)
|
|
496
|
+
* self->array = g_ptr_array_new ();
|
|
497
|
+
*
|
|
498
|
+
* if (cond)
|
|
499
|
+
* // No need to unlock
|
|
500
|
+
* return;
|
|
501
|
+
*
|
|
502
|
+
* if (index >= self->array->len)
|
|
503
|
+
* g_ptr_array_set_size (self->array, index+1);
|
|
504
|
+
* g_ptr_array_index (self->array, index) = data;
|
|
505
|
+
*
|
|
506
|
+
* // Optionally early unlock
|
|
507
|
+
* g_clear_pointer (&locker, g_rw_lock_writer_locker_free);
|
|
508
|
+
*
|
|
509
|
+
* // Code with rw_lock unlocked here
|
|
510
|
+
* }
|
|
511
|
+
* ]|
|
|
512
|
+
*
|
|
513
|
+
* Returns: a #GRWLockWriterLocker
|
|
514
|
+
* Since: 2.62
|
|
515
|
+
*/
|
|
516
|
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
517
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
|
|
518
|
+
static inline GRWLockWriterLocker *
|
|
519
|
+
g_rw_lock_writer_locker_new (GRWLock *rw_lock)
|
|
520
|
+
{
|
|
521
|
+
g_rw_lock_writer_lock (rw_lock);
|
|
522
|
+
return (GRWLockWriterLocker *) rw_lock;
|
|
523
|
+
}
|
|
524
|
+
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* g_rw_lock_writer_locker_free:
|
|
528
|
+
* @locker: a GRWLockWriterLocker
|
|
529
|
+
*
|
|
530
|
+
* Release a write lock on @locker's read-write lock. See
|
|
531
|
+
* g_rw_lock_writer_locker_new() for details.
|
|
532
|
+
*
|
|
533
|
+
* No memory is freed, it is equivalent to a g_rw_lock_writer_unlock() call.
|
|
534
|
+
*
|
|
535
|
+
* Since: 2.62
|
|
536
|
+
*/
|
|
537
|
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
538
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
|
|
539
|
+
static inline void
|
|
540
|
+
g_rw_lock_writer_locker_free (GRWLockWriterLocker *locker)
|
|
541
|
+
{
|
|
542
|
+
g_rw_lock_writer_unlock ((GRWLock *) locker);
|
|
543
|
+
}
|
|
544
|
+
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* GRWLockReaderLocker:
|
|
548
|
+
*
|
|
549
|
+
* Opaque type. See g_rw_lock_reader_locker_new() for details.
|
|
550
|
+
* Since: 2.62
|
|
551
|
+
*/
|
|
552
|
+
typedef void GRWLockReaderLocker;
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* g_rw_lock_reader_locker_new:
|
|
556
|
+
* @rw_lock: a #GRWLock
|
|
557
|
+
*
|
|
558
|
+
* Obtain a read lock on @rw_lock and return a new #GRWLockReaderLocker.
|
|
559
|
+
* Unlock with g_rw_lock_reader_locker_free(). Using g_rw_lock_reader_unlock()
|
|
560
|
+
* on @rw_lock while a #GRWLockReaderLocker exists can lead to undefined
|
|
561
|
+
* behaviour.
|
|
562
|
+
*
|
|
563
|
+
* No allocation is performed, it is equivalent to a g_rw_lock_reader_lock() call.
|
|
564
|
+
*
|
|
565
|
+
* This is intended to be used with g_autoptr(). For a code sample, see
|
|
566
|
+
* g_rw_lock_writer_locker_new().
|
|
567
|
+
*
|
|
568
|
+
* Returns: a #GRWLockReaderLocker
|
|
569
|
+
* Since: 2.62
|
|
570
|
+
*/
|
|
571
|
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
572
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
|
|
573
|
+
static inline GRWLockReaderLocker *
|
|
574
|
+
g_rw_lock_reader_locker_new (GRWLock *rw_lock)
|
|
575
|
+
{
|
|
576
|
+
g_rw_lock_reader_lock (rw_lock);
|
|
577
|
+
return (GRWLockReaderLocker *) rw_lock;
|
|
578
|
+
}
|
|
579
|
+
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* g_rw_lock_reader_locker_free:
|
|
583
|
+
* @locker: a GRWLockReaderLocker
|
|
584
|
+
*
|
|
585
|
+
* Release a read lock on @locker's read-write lock. See
|
|
586
|
+
* g_rw_lock_reader_locker_new() for details.
|
|
587
|
+
*
|
|
588
|
+
* No memory is freed, it is equivalent to a g_rw_lock_reader_unlock() call.
|
|
589
|
+
*
|
|
590
|
+
* Since: 2.62
|
|
591
|
+
*/
|
|
592
|
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
593
|
+
GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
|
|
594
|
+
static inline void
|
|
595
|
+
g_rw_lock_reader_locker_free (GRWLockReaderLocker *locker)
|
|
596
|
+
{
|
|
597
|
+
g_rw_lock_reader_unlock ((GRWLock *) locker);
|
|
598
|
+
}
|
|
599
|
+
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
600
|
+
|
|
601
|
+
G_END_DECLS
|
|
602
|
+
|
|
603
|
+
#endif /* __G_THREAD_H__ */
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* GLIB - Library of useful routines for C programming
|
|
2
|
+
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
5
|
+
*
|
|
6
|
+
* This library is free software; you can redistribute it and/or
|
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
* License as published by the Free Software Foundation; either
|
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
* Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
|
22
|
+
* file for a list of people on the GLib Team. See the ChangeLog
|
|
23
|
+
* files for a list of changes. These files are distributed with
|
|
24
|
+
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef __G_THREADPOOL_H__
|
|
28
|
+
#define __G_THREADPOOL_H__
|
|
29
|
+
|
|
30
|
+
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
|
31
|
+
#error "Only <glib.h> can be included directly."
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#include <glib/gthread.h>
|
|
35
|
+
|
|
36
|
+
G_BEGIN_DECLS
|
|
37
|
+
|
|
38
|
+
typedef struct _GThreadPool GThreadPool;
|
|
39
|
+
|
|
40
|
+
/* Thread Pools
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
struct _GThreadPool
|
|
44
|
+
{
|
|
45
|
+
GFunc func;
|
|
46
|
+
gpointer user_data;
|
|
47
|
+
gboolean exclusive;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
GLIB_AVAILABLE_IN_ALL
|
|
51
|
+
GThreadPool * g_thread_pool_new (GFunc func,
|
|
52
|
+
gpointer user_data,
|
|
53
|
+
gint max_threads,
|
|
54
|
+
gboolean exclusive,
|
|
55
|
+
GError **error);
|
|
56
|
+
GLIB_AVAILABLE_IN_2_70
|
|
57
|
+
GThreadPool * g_thread_pool_new_full (GFunc func,
|
|
58
|
+
gpointer user_data,
|
|
59
|
+
GDestroyNotify item_free_func,
|
|
60
|
+
gint max_threads,
|
|
61
|
+
gboolean exclusive,
|
|
62
|
+
GError **error);
|
|
63
|
+
GLIB_AVAILABLE_IN_ALL
|
|
64
|
+
void g_thread_pool_free (GThreadPool *pool,
|
|
65
|
+
gboolean immediate,
|
|
66
|
+
gboolean wait_);
|
|
67
|
+
GLIB_AVAILABLE_IN_ALL
|
|
68
|
+
gboolean g_thread_pool_push (GThreadPool *pool,
|
|
69
|
+
gpointer data,
|
|
70
|
+
GError **error);
|
|
71
|
+
GLIB_AVAILABLE_IN_ALL
|
|
72
|
+
guint g_thread_pool_unprocessed (GThreadPool *pool);
|
|
73
|
+
GLIB_AVAILABLE_IN_ALL
|
|
74
|
+
void g_thread_pool_set_sort_function (GThreadPool *pool,
|
|
75
|
+
GCompareDataFunc func,
|
|
76
|
+
gpointer user_data);
|
|
77
|
+
GLIB_AVAILABLE_IN_2_46
|
|
78
|
+
gboolean g_thread_pool_move_to_front (GThreadPool *pool,
|
|
79
|
+
gpointer data);
|
|
80
|
+
|
|
81
|
+
GLIB_AVAILABLE_IN_ALL
|
|
82
|
+
gboolean g_thread_pool_set_max_threads (GThreadPool *pool,
|
|
83
|
+
gint max_threads,
|
|
84
|
+
GError **error);
|
|
85
|
+
GLIB_AVAILABLE_IN_ALL
|
|
86
|
+
gint g_thread_pool_get_max_threads (GThreadPool *pool);
|
|
87
|
+
GLIB_AVAILABLE_IN_ALL
|
|
88
|
+
guint g_thread_pool_get_num_threads (GThreadPool *pool);
|
|
89
|
+
|
|
90
|
+
GLIB_AVAILABLE_IN_ALL
|
|
91
|
+
void g_thread_pool_set_max_unused_threads (gint max_threads);
|
|
92
|
+
GLIB_AVAILABLE_IN_ALL
|
|
93
|
+
gint g_thread_pool_get_max_unused_threads (void);
|
|
94
|
+
GLIB_AVAILABLE_IN_ALL
|
|
95
|
+
guint g_thread_pool_get_num_unused_threads (void);
|
|
96
|
+
GLIB_AVAILABLE_IN_ALL
|
|
97
|
+
void g_thread_pool_stop_unused_threads (void);
|
|
98
|
+
GLIB_AVAILABLE_IN_ALL
|
|
99
|
+
void g_thread_pool_set_max_idle_time (guint interval);
|
|
100
|
+
GLIB_AVAILABLE_IN_ALL
|
|
101
|
+
guint g_thread_pool_get_max_idle_time (void);
|
|
102
|
+
|
|
103
|
+
G_END_DECLS
|
|
104
|
+
|
|
105
|
+
#endif /* __G_THREADPOOL_H__ */
|