Commit Graph

7 Commits

Author SHA1 Message Date
Ryan Lortie
799e0242ae improve thread safety in GDelayedSettingsBackend
- hold a lock while accessing the tree of delayed values
  - use weak reference counts with the owner object to avoid doing
    g_object_notify on a dead object
  - dispatch the "has-unapplied" notify to the proper main context
2010-05-17 07:16:37 -04:00
Ryan Lortie
61219e2640 GSettingsBackend: make signal dispatch threadsafe
This commit fixes up a few race conditions in the GSettingsBackend, mostly with
respect to change notifications occuring at the same time as the last reference
count on a GSettings is dropped.  With GDBus feeding us our incoming signals in
a separate thread, this is something that could easily happen.
2010-05-17 07:16:37 -04:00
Ryan Lortie
984258c662 GSettings: support emitting signals in threads
The thread-default context that was in effect at the time that the
GSettings was created will be used for emitting signals on that
GSettings.
2010-05-17 07:16:37 -04:00
Ryan Lortie
8dddf6499e GSettingsBackend API/ABI change
- add list() virtual method
  - add 'default_value' flag to read() call
2010-04-28 14:41:42 -05:00
Ryan Lortie
118ae129bc GDelayedSettingsBackend: another mandatory fixup
- emit the "has-unapplied" property notify if dropping the last key
    from the changeset due to a mandatory key
2010-04-17 11:58:52 -04:00
Ryan Lortie
e06e441ac2 GSettings delayed: fix handling of mandatory keys
- if a key becomes mandatory, drop it from the changeset

  - if we still get failing writes (ie: because of a race) then drop the
    entire changeset and signal that it happened
2010-04-17 11:49:22 -04:00
Ryan Lortie
d4a4a4ccdb GSettings: import delayed backend to master 2010-04-16 12:02:44 -04:00