]> granicus.if.org Git - gc/commit
Enable disclaim_weakmap_test for the single-threaded environment
authorIvan Maidanski <ivmai@mail.ru>
Mon, 22 Oct 2018 08:04:36 +0000 (11:04 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 22 Oct 2018 08:13:42 +0000 (11:13 +0300)
commit6eba4218a2dcad603bc15202ada3d48a577cfd9d
tree7c0b646efbd3ab29966c16b6150e4bde602f0db5
parented09b5dfe1bf4ac8f5dea9d545f1ff060cdc5a5b
Enable disclaim_weakmap_test for the single-threaded environment
(fix of commit 0cc2c0e7e)

Issue #239 (bdwgc).

Also, do some code refactoring and reformatting of disclaim_weakmap_test.c.

* tests/disclaim_weakmap_test.c: Reformat code.
* tests/disclaim_weakmap_test.c: Do not include stdarg.h, dbg_mlc.h,
gc.h.
* tests/disclaim_weakmap_test.c (THREAD_CNT): Rename to NTHREADS.
* tests/disclaim_weakmap_test.c: Include errno.h, pthread.h,
gc_atomic_ops.h only if GC_PTHREADS.
* tests/disclaim_weakmap_test.c (NTHREADS): Set to 1 unless GC_PTHREADS.
* tests/disclaim_weakmap_test.c [LINT2] (rand): Redefine to
(int)GC_random() (to workaround a code defect reported by Coverity
Scan).
* tests/disclaim_weakmap_test.c (dief): Remove.
* tests/disclaim_weakmap_test.c (FINALIZER_CLOSURE_FLAG,
INVALIDATE_FLAG): New macro (used by weakmap_add, weakmap_disclaim).
* tests/disclaim_weakmap_test.c (out_of_memory): Replace with
CHECK_OOM(p).
* tests/disclaim_weakmap_test.c (stat_added, stat_found, stat_removed,
stat_skip_marked): Change type from volatile AO_t to unsigned (because
it is accessed while holding the lock).
* tests/disclaim_weakmap_test.c (struct weakmap): Add weakobj_kind
field.
* tests/disclaim_weakmap_test.c (weakmap_lock, weakmap_trylock,
weakmap_unlock): No-op unless GC_PTHREADS.
* tests/disclaim_weakmap_test.c (weakmap_add): Call
GC_end_stubborn_change().
* tests/disclaim_weakmap_test.c (weakmap_add, weakmap_disclaim,
weakmap_new): Call GC_PTR_STORE_AND_DIRTY().
* tests/disclaim_weakmap_test.c (weakmap_new): Call pthread_mutex_init()
only if GC_PTHREADS.
* tests/disclaim_weakmap_test.c (weakmap_destroy): New function (which
calls pthread_mutex_destroy() if GC_PTHREADS).
* tests/disclaim_weakmap_test.c (_weakobj_free_list, _weakobj_kind):
Change global variable to local one declared in main().
* tests/disclaim_weakmap_test.c [TEST_MANUAL_VDB] (main): Call
GC_set_manual_vdb_allowed(1).
* tests/disclaim_weakmap_test.c [!NO_INCREMENTAL] (main): Call
GC_enable_incremental().
* tests/disclaim_weakmap_test.c (main): Call GC_init_finalized_malloc()
instead of multiple GC_register_displacement() calls; call
weakmap_destroy().
* tests/disclaim_weakmap_test.c [!GC_PTHREADS] (main): Call test() once.
* tests/tests.am (TESTS, check_PROGRAMS): Add disclaim_weakmap_test even
if no THREADS.
* tests/tests.am (disclaim_weakmap_test_SOURCES,
disclaim_weakmap_test_LDADD): Define even if no THREADS.
tests/disclaim_weakmap_test.c
tests/tests.am