History log of /external/bluetooth/glib/tests/refcount/objects.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
78373b68b9936623dbdaf1754004a6bc798e9fa1 20-Nov-2007 Tim Janik <timj@src.gnome.org> Fixed up internal 'g_test*' names.

* refcount/signals.c:
* refcount/objects.c:
* refcount/objects2.c:
* refcount/closures.c:
* refcount/properties.c:
* refcount/properties2.c: changed namespace prefix from g_test_* to my_test_*
to not clash with newly introduced g_test* API in glib.

svn path=/trunk/; revision=5875
/external/bluetooth/glib/tests/refcount/objects.c
352a0e6c0b6a434db689114f64b2dbfa642cd948 02-Aug-2005 Tor Lillqvist <tml@novell.com> tests/refcount/objects.c tests/refcount/properties.c Use g_usleep()

2005-08-02 Tor Lillqvist <tml@novell.com>

* tests/refcount/objects.c
* tests/refcount/properties.c
* tests/refcount/signals.c: Use g_usleep() instead of sleep() for
portability.
/external/bluetooth/glib/tests/refcount/objects.c
10a3867a6e88c5980e04c6a5623e1f0ae89f7116 01-Aug-2005 Tim Janik <timj@imendio.com> test high contention on closure reference counts to trigger and catch

Mon Aug 1 23:33:47 2005 Tim Janik <timj@imendio.com>

* tests/refcount/closures.c: test high contention on closure
reference counts to trigger and catch non-atomic updates.

* tests/refcount/objects.c:
* tests/refcount/objects2.c:
* tests/refcount/properties.c:
* tests/refcount/properties2.c:
* tests/refcount/signals.c:
fixed up test and threading fundamentals. variables accessed from all
threads need to be volatile. context switches are enforced by using
g_thread_yield(), not g_usleep(1) which may result in busy waits on
some platforms. for testcode, always consider all warnings and
critical messages fatal. issue the currently running program on
stdout. improved progress indicators.

* tests/refcount/properties.c:
* tests/refcount/objects.c:
don't overdo the number of testing threads to keep the testing machine
usable, 2 threads can produce as much contention as 20 if executing the
same code.

* tests/refcount/signals.c: only start 1 thread per object. GObject
doesn't provide mutually exclusive object access, but only mutually
exclusive reference count modification.

* tests/Makefile.am: added closures test.
/external/bluetooth/glib/tests/refcount/objects.c
39ea11ce6b107bf3969a2f94807675b458a5a887 15-Jul-2005 Matthias Clasen <mclasen@redhat.com> Make refcounting threadsafe by using atomic operations. (#166020, Wim

2005-07-15 Matthias Clasen <mclasen@redhat.com>

Make refcounting threadsafe by using atomic
operations. (#166020, Wim Taymans)

* gobject.c: Use a recursive lock to protect the
notify queue.
(g_object_unref): Get rid of g_object_last_unref and
do the last unref handling in g_object_unref.
(g_object_ref, g_object_unref): Use atomic operations.

* gsignal.c (struct _HandlerMatch): Use a full integer
for the ref_count field.
(handler_ref, handler_unref_R): Use atomic operations.

* gparam.c (g_param_spec_ref, g_param_spec_unref):
Use atomic operations instead of a lock to make the
refcounting threadsafe.

* gclosure.c (g_closure_ref, g_closure_unref): Use atomic
operations. This is more complicated here, since the
refcount is stored in a bitfield, so we also have
to access all other bitfield members atomically.

* gsignal.c (handlers_find): Read the meta_marshal flag
of the closure atomically.

* tests/Makefile.am (SUBDIRS): Add tests/refcount

* configure.in: Add tests/refcount

* tests/refcount/properties.c: Test property changes
from multiple threads.

* tests/refcount/signals.c: Test signal emission from
multiple threads.

* tests/refcount/objects.c: Test refcounting from
multiple threads.

* tests/refcount/objects2.c:
* tests/refcount/properties2.c: Tests to measure the
overhead of threadsafe refcounting.

* glib/giochannel.c (g_io_channel_ref, g_io_channel_unref):
Use atomic operations to make refcounting
threadsafe. (#166020, Wim Taymans)
/external/bluetooth/glib/tests/refcount/objects.c