<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/glib.git/gio/gcancellable.c, branch require-python34</title>
<subtitle>gitlab.gnome.org: GNOME/glib.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/'/>
<entry>
<title>cancellable: Don't assert if finalization races with cancellation</title>
<updated>2018-01-05T20:42:06+00:00</updated>
<author>
<name>Simon McVittie</name>
<email>smcv@collabora.com</email>
</author>
<published>2017-12-19T10:58:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=7f3bfcb8912e9b8b2e73520857690356d91869b9'/>
<id>7f3bfcb8912e9b8b2e73520857690356d91869b9</id>
<content type='text'>
Commit 281e3010 narrowed the race between GCancellable::cancelled and
GCancellableSource's finalize(), but did not prevent it: there was
nothing to stop cancellation from occurring after the refcount drops
to 0, but before g_source_unref_internal() bumps it back up to 1 to
run finalize().

GCancellable cannot be expected to detect that situation, because the
only way it has to detect last-unref is finalize(), but in that
situation finalize() hasn't happened yet.

Instead of detecting last-unref, relax the precondition a little
to make it detect finalization: priv is only poisoned (set to NULL)
after the finalize() function has been called, so we can assume that
GCancellable has already seen finalize() by then.

Signed-off-by: Simon McVittie &lt;smcv@collabora.com&gt;
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791754
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884654
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 281e3010 narrowed the race between GCancellable::cancelled and
GCancellableSource's finalize(), but did not prevent it: there was
nothing to stop cancellation from occurring after the refcount drops
to 0, but before g_source_unref_internal() bumps it back up to 1 to
run finalize().

GCancellable cannot be expected to detect that situation, because the
only way it has to detect last-unref is finalize(), but in that
situation finalize() hasn't happened yet.

Instead of detecting last-unref, relax the precondition a little
to make it detect finalization: priv is only poisoned (set to NULL)
after the finalize() function has been called, so we can assume that
GCancellable has already seen finalize() by then.

Signed-off-by: Simon McVittie &lt;smcv@collabora.com&gt;
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791754
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884654
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: Fix various minor syntax errors in gtk-doc comments</title>
<updated>2017-11-07T14:51:12+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>withnall@endlessm.com</email>
</author>
<published>2017-11-07T13:38:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=8e8f4e6486c1578ae15d63835acd06f237324a6d'/>
<id>8e8f4e6486c1578ae15d63835acd06f237324a6d</id>
<content type='text'>
This will fix a few broken links in the documentation, and shut up a
load of gtk-doc warnings (but certainly not all of them).

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

https://bugzilla.gnome.org/show_bug.cgi?id=790015
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will fix a few broken links in the documentation, and shut up a
load of gtk-doc warnings (but certainly not all of them).

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

https://bugzilla.gnome.org/show_bug.cgi?id=790015
</pre>
</div>
</content>
</entry>
<entry>
<title>gio/: LGPLv2+ -&gt; LGPLv2.1+</title>
<updated>2017-05-29T17:53:34+00:00</updated>
<author>
<name>Sébastien Wilmet</name>
<email>swilmet@gnome.org</email>
</author>
<published>2017-05-27T16:21:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=3bf4a720c315b5015c8d51edf0b458348f796674'/>
<id>3bf4a720c315b5015c8d51edf0b458348f796674</id>
<content type='text'>
Sub-directories inside gio/ already processed in a previous commit:
- fam/
- gdbus-2.0/ (which contains only codegen/)
- gvdb/
- inotify/
- tests/
- win32/
- xdgmime/

Other sub-directories inside gio/:
- completion/: no license headers
- kqueue/: not LGPL, BSD-style license

https://bugzilla.gnome.org/show_bug.cgi?id=776504
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sub-directories inside gio/ already processed in a previous commit:
- fam/
- gdbus-2.0/ (which contains only codegen/)
- gvdb/
- inotify/
- tests/
- win32/
- xdgmime/

Other sub-directories inside gio/:
- completion/: no license headers
- kqueue/: not LGPL, BSD-style license

https://bugzilla.gnome.org/show_bug.cgi?id=776504
</pre>
</div>
</content>
</entry>
<entry>
<title>gio: Drop redundant g_source_is_destroyed() calls</title>
<updated>2017-03-23T15:00:19+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>withnall@endlessm.com</email>
</author>
<published>2017-02-05T15:34:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=4091b2d19e165ab9857ea4cd5ea296718540a4f8'/>
<id>4091b2d19e165ab9857ea4cd5ea296718540a4f8</id>
<content type='text'>
These calls cause race warnings from tsan, but are not a thread safety
problem, because we can only ever observe single bit changes: all
modifications to the GSource.flags field are done with a lock held; all
reads are of independent fields, so no intermediate state can ever be
observed. This assumes that a non-atomic read will consistently give us
an old value or a new value.

In any case, these g_source_is_destroyed() calls can happen from any
thread, and the state could be changed from another thread immediately
after the call returns; so the checks are pointless. In addition,
calling g_source_set_ready_time() or g_source_destroy() on a destroyed
source is not a problem.

https://bugzilla.gnome.org/show_bug.cgi?id=778049
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These calls cause race warnings from tsan, but are not a thread safety
problem, because we can only ever observe single bit changes: all
modifications to the GSource.flags field are done with a lock held; all
reads are of independent fields, so no intermediate state can ever be
observed. This assumes that a non-atomic read will consistently give us
an old value or a new value.

In any case, these g_source_is_destroyed() calls can happen from any
thread, and the state could be changed from another thread immediately
after the call returns; so the checks are pointless. In addition,
calling g_source_set_ready_time() or g_source_destroy() on a destroyed
source is not a problem.

https://bugzilla.gnome.org/show_bug.cgi?id=778049
</pre>
</div>
</content>
</entry>
<entry>
<title>introspection: use (nullable) or (optional) instead of (allow-none)</title>
<updated>2016-11-22T22:14:37+00:00</updated>
<author>
<name>Christian Hergert</name>
<email>chergert@redhat.com</email>
</author>
<published>2016-10-29T01:29:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=18a33f72db6a410606674d8d53fb2dadb706091d'/>
<id>18a33f72db6a410606674d8d53fb2dadb706091d</id>
<content type='text'>
If we have an input parameter (or return value) we need to use (nullable).
However, if it is an (inout) or (out) parameter, (optional) is sufficient.

It looks like (nullable) could be used for everything according to the
Annotation documentation, but (optional) is more specific.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we have an input parameter (or return value) we need to use (nullable).
However, if it is an (inout) or (out) parameter, (optional) is sufficient.

It looks like (nullable) could be used for everything according to the
Annotation documentation, but (optional) is more specific.
</pre>
</div>
</content>
</entry>
<entry>
<title>gcancellable: Mention nullability in g_cancellable_cancel() docs</title>
<updated>2015-02-24T10:57:14+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>philip.withnall@collabora.co.uk</email>
</author>
<published>2015-02-24T10:57:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=e966cc51de22a9f8b045f6f0f6f0de82f934d46d'/>
<id>e966cc51de22a9f8b045f6f0f6f0de82f934d46d</id>
<content type='text'>
Calling g_cancellable_cancel(NULL) is an explicitly allowed no-op, for
convenience. Document and annotate that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling g_cancellable_cancel(NULL) is an explicitly allowed no-op, for
convenience. Document and annotate that.
</pre>
</div>
</content>
</entry>
<entry>
<title>gcancellable: Clarify that GSources hold references to GCancellables</title>
<updated>2014-10-27T09:43:55+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>philip.withnall@collabora.co.uk</email>
</author>
<published>2014-09-24T13:06:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=203fe3b8a8817da8e1ec771e2ebd15c747653158'/>
<id>203fe3b8a8817da8e1ec771e2ebd15c747653158</id>
<content type='text'>
Clarify in the documentation that a GSource created with
g_cancellable_source_new() must be explicitly removed from its
GMainContext before the GCancellable can be finalised.

This could be a common way of leaking GCancellables.

https://bugzilla.gnome.org/show_bug.cgi?id=737259
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clarify in the documentation that a GSource created with
g_cancellable_source_new() must be explicitly removed from its
GMainContext before the GCancellable can be finalised.

This could be a common way of leaking GCancellables.

https://bugzilla.gnome.org/show_bug.cgi?id=737259
</pre>
</div>
</content>
</entry>
<entry>
<title>Add advice on g_cancellable_reset</title>
<updated>2014-10-07T02:41:06+00:00</updated>
<author>
<name>Matthias Clasen</name>
<email>mclasen@redhat.com</email>
</author>
<published>2014-10-07T02:41:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=de82b641b05ee32812d945a9d4ecd1c1bbc3401e'/>
<id>de82b641b05ee32812d945a9d4ecd1c1bbc3401e</id>
<content type='text'>
Don't use it at home.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't use it at home.
</pre>
</div>
</content>
</entry>
<entry>
<title>gio: port annotations from the Vala metadata.</title>
<updated>2014-05-23T17:04:06+00:00</updated>
<author>
<name>Evan Nemerson</name>
<email>evan@nemerson.com</email>
</author>
<published>2014-05-21T07:27:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=570b27b9acbf6e6f31ab0f9a31a4cce60f4d228a'/>
<id>570b27b9acbf6e6f31ab0f9a31a4cce60f4d228a</id>
<content type='text'>
https://bugzilla.gnome.org/show_bug.cgi?id=730493
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugzilla.gnome.org/show_bug.cgi?id=730493
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: use "Returns:" consistently</title>
<updated>2014-02-20T00:41:52+00:00</updated>
<author>
<name>William Jon McCann</name>
<email>william.jon.mccann@gmail.com</email>
</author>
<published>2014-02-20T00:35:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=20f4d1820b8d4d0fc4447188e33efffd6d4a88d8'/>
<id>20f4d1820b8d4d0fc4447188e33efffd6d4a88d8</id>
<content type='text'>
Instead of "Return value:".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of "Return value:".
</pre>
</div>
</content>
</entry>
</feed>
