1. 24 May, 2017 1 commit
    • Sébastien Wilmet's avatar
      glib/: LGPLv2+ -> LGPLv2.1+ · f9faac76
      Sébastien Wilmet authored
      All glib/*.{c,h} files have been processed, as well as gtester-report.
      
      12 of those files are not licensed under LGPL:
      
      	gbsearcharray.h
      	gconstructor.h
      	glibintl.h
      	gmirroringtable.h
      	gscripttable.h
      	gtranslit-data.h
      	gunibreak.h
      	gunichartables.h
      	gunicomp.h
      	gunidecomp.h
      	valgrind.h
      	win_iconv.c
      
      Some of them are generated files, some are licensed under a BSD-style
      license and win_iconv.c is in the public domain.
      
      Sub-directories inside glib/:
      
      	deprecated/: processed in a previous commit
      	glib-mirroring-tab/: already LGPLv2.1+
      	gnulib/: not modified, the code is copied from gnulib
      	libcharset/: a copy
      	pcre/: a copy
      	tests/: processed in a previous commit
      
      https://bugzilla.gnome.org/show_bug.cgi?id=776504
      f9faac76
  2. 07 Nov, 2015 1 commit
    • Philip Withnall's avatar
      glib: Add missing (nullable) and (optional) annotations · 25a7c817
      Philip Withnall authored
      Add various (nullable) and (optional) annotations which were missing
      from a variety of functions. Also port a couple of existing (allow-none)
      annotations in the same files to use (nullable) and (optional) as
      appropriate instead.
      
      Secondly, add various (not nullable) annotations as needed by the new
      default in gobject-introspection of marking gpointers as (nullable). See
      https://bugzilla.gnome.org/show_bug.cgi?id=729660.
      
      This includes adding some stub documentation comments for the
      assertion macro error functions, which weren’t previously documented.
      The new comments are purely to allow for annotations, and hence are
      marked as (skip) to prevent the symbols appearing in the GIR file.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=719966
      25a7c817
  3. 13 Mar, 2015 1 commit
  4. 31 Jan, 2014 1 commit
  5. 20 Jan, 2014 1 commit
  6. 04 May, 2013 1 commit
  7. 15 Nov, 2012 1 commit
  8. 02 Jan, 2012 1 commit
  9. 21 Nov, 2011 1 commit
  10. 03 Oct, 2011 1 commit
  11. 21 Sep, 2011 2 commits
  12. 19 Sep, 2011 1 commit
  13. 09 Sep, 2011 1 commit
  14. 09 Jun, 2011 1 commit
  15. 04 Jun, 2011 1 commit
  16. 03 Jun, 2011 1 commit
    • Allison Karlitskaya's avatar
      bitlock: hand-code assembly version for x86 · 1a80405a
      Allison Karlitskaya authored
      The __sync_fetch_and_or() operation on x86 is a bit suboptimal when the
      result isn't ignored.  Normally we could use the 'lock or' assembly
      instruction to accomplish this, but this instruction discards the
      previous value.
      
      In order to work around this issue, GCC is forced to emit a
      compare-and-exchange loop.
      
      We can easily use the 'lock bts' instruction, though.  It can't be used
      in the general case for __sync_fetch_and_or() but it works great for our
      case (test and set a single bit).
      
      I filed a bug against GCC[1] to get this exposed as a new intrinsic (or
      have the optimiser detect the case) but until then we'll hand-code it on
      x86 and amd64.
      
      The uncontended case sees a 31% improvement on my test machine.
      
       [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49244
      
      https://bugzilla.gnome.org/show_bug.cgi?id=651467
      1a80405a
  17. 28 May, 2011 2 commits
    • Allison Karlitskaya's avatar
      optimise bitlocks with new atomic operations · d09443fe
      Allison Karlitskaya authored
      Add a performance test for bitlocks.
      
      Make use of the new g_atomic_int_{and,or} to avoid having to do the
      usual compare-and-exchange loop.
      
      On a test machine, the change increases performance from approximately
      20 million uncontended acquire/releases per second to 31 million.
      d09443fe
    • Allison Karlitskaya's avatar
      Fix futex(2) detection and use · 858a3287
      Allison Karlitskaya authored
      Commit 22e7fc34 introduced a regression:
      futexes were always disabled and the emulated codepath was always being
      used.  That commit was in response to an originally buggy
      implementationt hat wrote junk into config.h (but happened to be working
      properly).
      
      Fix up the mess and while we're at it, close bug #631231 by including
      syscall.h from the correct location and using __NR_futex instead of
      SYS_futex.
      
      Closes #631231.
      858a3287
  18. 07 Jul, 2010 1 commit
  19. 01 Feb, 2010 1 commit
  20. 30 Jan, 2010 1 commit
  21. 29 Jan, 2010 1 commit
  22. 28 Jan, 2010 2 commits
    • Allison Karlitskaya's avatar
      Bug 548967 - 1 bit mutex lock: add tests · 40eae351
      Allison Karlitskaya authored
      Add a test case for the new API.
      
      Always check the emulated futex(2) implementation, even on systems with
      futex support.
      40eae351
    • Allison Karlitskaya's avatar
      Bug 548967 - 1 bit mutex lock · 669b0f2d
      Allison Karlitskaya authored
      Add support for a mutex lock that consumes only one bit of storage
      inside of an integer on systems that support futexes.  Futex is emulated
      (at a higher cost) on systems that don't have it -- but only in the
      contended case.
      669b0f2d