[boehm] Put *_freelists into thread_local_freelists (as in BDWGC v7)
authorIvan Maidanski <ivmai@mail.ru>
Mon, 16 Nov 2015 07:09:55 +0000 (10:09 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 17 Nov 2015 22:05:36 +0000 (01:05 +0300)
commit5e3eac6b4d2a5878560ca15257d5500e81325fed
treedce6cf706282525e4410cc14fd344c53401e3a15
parentb0e91acb611bd7e6c39bc8756b38b41809a727a3
[boehm] Put *_freelists into thread_local_freelists (as in BDWGC v7)

Mono create_allocator accesses libgc private *_freelists directly.
These fields have been grouped together into struct
thread_local_freelists in BDWGC v7.
This commit does code refactoring to match the structure of external
GC regarding *_freelists.

 * Move GRANULARITY, NFREELISTS (used by *_freelists) out of
   GC_Thread_Rep.

 * Move ptrfree_freelists, normal_freelists, gcj_freelists from
   GC_Thread_Rep to struct thread_local_freelists.

 * Add tlfs field (of type struct thread_local_freelists) to
   GC_Thread_Rep.

 * Update pthread_support.c and boehm-gc.c code accordingly.
libgc/include/private/pthread_support.h
libgc/pthread_support.c
mono/metadata/boehm-gc.c