glib/glib
Dan Winship b3e3ed7386 gmain: don't pass the same fd to g_poll() multiple times
If a given fd is being polled by multiple sources, we used to pass it
multiple times to g_poll(), which is technically illegal (and not
supported by the select()-based fallback implementation of poll() in
gpoll.c), and also made it more likely that we'd exceed the maximum
number of pollfds.

Fix it to merge together "duplicate" GPollFDs. The easiest way to do
this involves re-sorting context->poll_records into fd order rather
than priority order. This means we now have to walk the entire pollrec
list for every g_main_context_query() and g_main_context_poll(),
rather than only walking the list up to the current max_priority.
However, this will only have a noticeable effect if you have tons of
GPollFDs, and we're already too slow in that case anyway because of
other O(n) operations that happen too often. So this shouldn't change
much (and the new poll API will eventually let us be cleverer).

Remove some win32-specific code which did the same thing (but was
O(n^2)).

https://bugzilla.gnome.org/show_bug.cgi?id=11059
2014-10-29 17:19:20 -04:00
..
deprecated Fix g_cond_timed_wait() timeout with !CLOCK_MONOTONIC 2014-10-10 06:41:55 -04:00
glib-mirroring-tab Use 'dumb quotes' rather than `really dumb quotes' 2013-05-21 11:23:22 -03:00
gnulib Updated FSF's address 2014-01-31 14:31:55 +01:00
libcharset Updated FSF's address 2014-01-31 14:31:55 +01:00
pcre all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
tests gmain: don't pass the same fd to g_poll() multiple times 2014-10-29 17:19:20 -04:00
update-pcre Rework the build system for a new tests approach 2013-05-31 23:12:15 -04:00
.gitignore update .gitignores 2011-06-12 16:17:30 -04:00
docs.c Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
galloca.h docs: Fix formatting of g_alloca documentation. 2014-06-28 13:43:23 -04:00
garray.c garray: initialize allocated size in g_byte_array_new_take() 2014-10-08 20:51:47 +02:00
garray.h GArray: Documentation cleanups 2014-02-01 20:46:29 -05:00
gasyncqueue.c asyncqueue: fix timeout math on 32bit systems 2014-02-23 01:14:27 -05:00
gasyncqueue.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gasyncqueueprivate.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gatomic.c docs: Remove some unneeded decorations 2014-02-14 21:39:11 -05:00
gatomic.h Revert "gatomic: statically assert that our assumptions hold" 2014-07-23 09:28:23 -04:00
gbacktrace.c Docs: replace <literal> by ` 2014-02-06 08:07:16 -05:00
gbacktrace.h docs: Ditch more markup 2014-03-02 18:23:43 -05:00
gbase64.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gbase64.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gbitlock.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gbitlock.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gbookmarkfile.c gbookmarkfile: Cleaner error handling code to pacify static analysis 2014-06-12 13:25:06 -04:00
gbookmarkfile.h docs: Replace <structname> tags with back ticks 2014-05-31 19:22:15 +01:00
gbsearcharray.h Require C90 compliance 2013-11-20 09:16:16 -05:00
gbytes.c Fix typos in gbytes_hash and g_time_zone_find_interval docs 2014-07-14 08:39:34 -04:00
gbytes.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gcharset.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gcharset.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gcharsetprivate.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gchecksum.c all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gchecksum.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gconstructor.h Move constructor macros to an internal header and into generated code 2012-01-30 16:59:27 +01:00
gconvert.c gconvert: mention that the g_convert len should be in bytes 2014-05-30 13:51:16 +02:00
gconvert.h Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
gdataset.c GDataSet: silently accept NULL/0 as keys 2014-10-02 14:40:16 -04:00
gdataset.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gdatasetprivate.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gdate.c Eradicate links and xrefs 2014-02-08 12:26:56 -05:00
gdate.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gdatetime.c GDateTime: Add guards to g_date_time_new() 2014-06-28 13:46:17 -04:00
gdatetime.h docs: Replace <structname> tags with back ticks 2014-05-31 19:22:15 +01:00
gdir.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gdir.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gen-unicode-tables.pl unicode: Switch compose_second_single to gunichar 2014-06-28 12:49:07 -04:00
genviron.c Fix some typos in documentation 2014-05-05 18:30:56 +08:00
genviron.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gerror.c Clarify g_propagate_error docs 2014-10-10 14:17:56 -04:00
gerror.h docs: Replace <structname> tags with back ticks 2014-05-31 19:22:15 +01:00
gfileutils.c Save errno and pass it along to make sure gettext does not change it 2014-08-02 10:54:01 +00:00
gfileutils.h Updated FSF's address 2014-01-31 14:31:55 +01:00
ggettext.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
ggettext.h Updated FSF's address 2014-01-31 14:31:55 +01:00
ghash.c GHashTable: small docs fix 2014-10-17 14:39:09 +02:00
ghash.h Updated FSF's address 2014-01-31 14:31:55 +01:00
ghmac.c hmac: Add support for SHA-512 in GHmac 2014-04-16 16:20:46 +01:00
ghmac.h Updated FSF's address 2014-01-31 14:31:55 +01:00
ghook.c Docs: Drop entities, switch away from sgml mode 2014-02-09 02:07:26 -05:00
ghook.h Updated FSF's address 2014-01-31 14:31:55 +01:00
ghostutils.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
ghostutils.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gi18n-lib.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gi18n.h Updated FSF's address 2014-01-31 14:31:55 +01:00
giochannel.c doc: small improvement and fixes 2014-07-04 17:03:50 +02:00
giochannel.h Updated FSF's address 2014-01-31 14:31:55 +01:00
giounix.c Updated FSF's address 2014-01-31 14:31:55 +01:00
giowin32.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gkeyfile.c docs: Remove escaping '\' from literals 2014-03-30 08:37:23 -04:00
gkeyfile.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib_probes.d Add some mainloop instrumentation 2013-11-23 00:22:09 -05:00
glib_trace.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-init.c glib-init: statically assert that we have 8-bit bytes 2014-07-23 09:18:43 +01:00
glib-init.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-object.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-private.c Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-private.h Trivial: fix a guard comment 2014-05-21 07:41:08 -04:00
glib-unix.c Docs: replace <literal> by ` 2014-02-06 08:07:16 -05:00
glib-unix.h docs: Remove a few trailing <literal>s 2014-02-14 21:49:42 -05:00
glib.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib.py Make gdb pretty-printers compatible with Python3 2013-12-18 07:22:16 +11:00
glib.rc.in Update the year in the *.rc.in files 2011-06-07 08:55:31 +08:00
glib.stp.in Add some mainloop instrumentation 2013-11-23 00:22:09 -05:00
glibconfig.h.win32.in Remove alleged support for last-millennium Unixes 2013-11-20 09:16:16 -05:00
glibintl.h various: add GLIB_AVAILABLE_IN_ALL everywhere else 2013-01-13 13:11:57 -05:00
glist.c docs: let go of &ast; 2014-02-14 21:33:36 -05:00
glist.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gmacros.h gmacros.h: add G_GNUC_*_IGNORE_DEPRECATIONS macros for clang 2014-08-22 20:58:11 +02:00
gmain-internal.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gmain.c gmain: don't pass the same fd to g_poll() multiple times 2014-10-29 17:19:20 -04:00
gmain.h docs: Replace <structname> tags with back ticks 2014-05-31 19:22:15 +01:00
gmappedfile.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gmappedfile.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gmarkup.c doc: various improvements 2014-05-09 18:47:42 +02:00
gmarkup.h doc: various improvements 2014-05-09 18:47:42 +02:00
gmem.c Remove atomics from g_clear_object/g_clear_pointer 2014-07-30 15:11:01 +02:00
gmem.h Remove atomics from g_clear_object/g_clear_pointer 2014-07-30 15:11:01 +02:00
gmessages.c Fix up failure-to-see-expected-message logging 2014-07-09 10:48:34 -04:00
gmessages.h Be more clear that g_return_if_fail is undefined behaviour 2014-02-11 15:01:58 +00:00
gmirroringtable.h Bug 491554 – Update to Unicode 5.1.0 2008-04-08 02:59:05 +00:00
gnode.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gnode.h Updated FSF's address 2014-01-31 14:31:55 +01:00
goption.c GOption: stop calling getopt() 2014-10-20 14:34:52 +02:00
goption.h GOption: add strict posix mode 2014-10-15 23:37:45 +02:00
gpattern.c all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gpattern.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gpoll.c gmain: don't pass the same fd to g_poll() multiple times 2014-10-29 17:19:20 -04:00
gpoll.h Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
gprimes.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gprimes.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gprintf.c Eradicate links and xrefs 2014-02-08 12:26:56 -05:00
gprintf.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gprintfint.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gqsort.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gqsort.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gquark.c Eradicate links and xrefs 2014-02-08 12:26:56 -05:00
gquark.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gqueue.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gqueue.h docs: Use markdown links in all .c and .h files 2014-04-15 22:19:07 +02:00
grand.c grand: Only use rand_s() when targetting Visual Studio >= 2005 2014-09-15 22:25:08 +03:00
grand.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gregex.c docs: let go of &ast; 2014-02-14 21:33:36 -05:00
gregex.h Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
gscanner.c Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
gscanner.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gscripttable.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gsequence.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gsequence.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gshell.c doc: various improvements 2014-06-29 17:57:24 +02:00
gshell.h various: add GLIB_AVAILABLE_IN_ALL everywhere else 2013-01-13 13:11:57 -05:00
gslice.c Revert "Bug 724590 - GSlice slab_stack corruption" 2014-04-16 07:53:58 -04:00
gslice.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gslist.c gslist: indentation fix 2014-09-27 00:04:55 +02:00
gslist.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gspawn-win32-helper.c gspawn-win32: do not rely on __argc and __argv global vars. 2014-07-14 08:43:17 -04:00
gspawn-win32.c Change W32 console detection to look at the window, not stdout 2014-08-05 06:44:01 +00:00
gspawn.c docs: Fill in the gspawn long description 2014-05-31 10:54:02 -04:00
gspawn.h docs: Ditch more markup 2014-03-02 18:23:43 -05:00
gstdio.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gstdio.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gstrfuncs.c doc: small improvement and fixes 2014-07-04 17:03:50 +02:00
gstrfuncs.h Add locale-sensitive ASCII transliteration API 2014-02-20 18:27:24 -05:00
gstring.c doc: various improvements 2014-05-09 18:47:42 +02:00
gstring.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gstringchunk.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gstringchunk.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtester-report Restore executability for other files 2014-01-31 09:36:52 -05:00
gtester.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gtestutils.c gtestutils: Error out if /dev/null stdin redirection fails 2014-05-26 08:39:40 +01:00
gtestutils.h docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gthread-posix.c GCond (linux): fix g_cond_wait_until() return value on timeout 2014-07-09 10:59:06 -04:00
gthread-win32.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gthread.c docs: let go of &ast; 2014-02-14 21:33:36 -05:00
gthread.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gthreadpool.c Fix typo 2014-10-05 12:11:21 -05:00
gthreadpool.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gthreadprivate.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtimer.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gtimer.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtimezone.c Fix typos in gbytes_hash and g_time_zone_find_interval docs 2014-07-14 08:39:34 -04:00
gtimezone.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtranslit-data.h Add locale-sensitive ASCII transliteration API 2014-02-20 18:27:24 -05:00
gtranslit.c g_str_to_ascii(): a couple of minor tweaks 2014-02-20 18:32:42 -05:00
gtrashstack.c Docs: replace <literal> by ` 2014-02-06 08:07:16 -05:00
gtrashstack.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtree.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gtree.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtypes.h all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gunibreak.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gunibreak.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gunichartables.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gunicode.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gunicodeprivate.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gunicollate.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gunicomp.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gunidecomp.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gunidecomp.h unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
guniprop.c unicode: Update to unicode 7.0.0 2014-06-28 12:49:38 -04:00
gurifuncs.c Convert external links to markdown syntax 2014-02-05 21:23:28 -05:00
gurifuncs.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gutf8.c docs: use "Returns:" consistently 2014-02-19 19:41:52 -05:00
gutils.c gutils: Don't use issetugid() on Android 2014-09-11 11:07:48 +03:00
gutils.h all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gvariant-core.c docs: Remove <!-- --> comment before plural s 2014-04-24 13:42:37 +02:00
gvariant-core.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gvariant-internal.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gvariant-parser.c Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
gvariant-serialiser.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gvariant-serialiser.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gvariant.c GVariant: say that serialized form needs an out-of-band length 2014-09-19 16:58:23 +01:00
gvariant.h add GVariantDict 2014-02-04 11:56:06 +00:00
gvarianttype.c Convert GVariantType table to a list 2014-02-08 13:43:16 -05:00
gvarianttype.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gvarianttypeinfo.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gvarianttypeinfo.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gversion.c Minor documentation additions and corrections 2014-05-31 10:54:02 -04:00
gversion.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gversionmacros.h Add version macros for 2.44 2014-09-29 11:40:10 -04:00
gwakeup.c gwakeup: Clarify buffer sizing in g_wakeup_signal() 2014-06-21 17:41:31 +01:00
gwakeup.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gwin32.c win32: improve the package installation dir lookup 2014-07-31 13:04:56 +02:00
gwin32.h Updated FSF's address 2014-01-31 14:31:55 +01:00
libglib-gdb.py.in Avoid shadowing dir builtin 2010-12-03 14:41:06 -05:00
Makefile.am glib: Fix make dist 2014-06-30 14:46:32 +02:00
makefile.msc.in win32: Use timeGetTime as monotonic base 2011-11-16 09:10:46 +01:00
update-gtranslit.py Add locale-sensitive ASCII transliteration API 2014-02-20 18:27:24 -05:00
valgrind.h Include <stdint.h> in glib/valgrind.h 2014-09-23 09:08:16 -04:00
win_iconv.c Silence a controversial warning in win_iconv 2014-08-02 12:38:39 +00:00