Annotation of OpenXM_contrib2/asir2000/gc5.3/README.sgi, Revision 1.1
1.1 ! noro 1: Performance of the incremental collector can be greatly enhanced with
! 2: -DNO_EXECUTE_PERMISSION.
! 3:
! 4: The collector should run with all of the -32, -n32 and -64 ABIs. Remember to
! 5: define the AS macro in the Makefile to be "as -64", or "as -n32".
! 6:
! 7: If you use -DREDIRECT_MALLOC=GC_malloc with C++ code, your code should make
! 8: at least one explicit call to malloc instead of new to ensure that the proper
! 9: version of malloc is linked in.
! 10:
! 11: Sproc threads are not supported in this version, though there may exist other
! 12: ports.
! 13:
! 14: Pthreads support is provided. This requires that:
! 15:
! 16: 1) You compile the collector with -DIRIX_THREADS specified in the Makefile.
! 17:
! 18: 2) You have the latest pthreads patches installed.
! 19:
! 20: (Though the collector makes only documented pthread calls,
! 21: it relies on signal/threads interactions working just right in ways
! 22: that are not required by the standard. It is unlikely that this code
! 23: will run on other pthreads platforms. But please tell me if it does.)
! 24:
! 25: 3) Every file that makes thread calls should define IRIX_THREADS and then
! 26: include gc.h. Gc.h redefines some of the pthread primitives as macros which
! 27: also provide the collector with information it requires.
! 28:
! 29: 4) pthread_cond_wait and pthread_cond_timed_wait should be prepared for
! 30: premature wakeups. (I believe the pthreads and realted standards require this
! 31: anyway. Irix pthreads often terminate a wait if a signal arrives.
! 32: The garbage collector uses signals to stop threads.)
! 33:
! 34: 5) It is expensive to stop a thread waiting in IO at the time the request is
! 35: initiated. Applications with many such threads may not exhibit acceptable
! 36: performance with the collector. (Increasing the heap size may help.)
! 37:
! 38: 6) The collector should not be compiled with -DREDIRECT_MALLOC. This
! 39: confuses some library calls made by the pthreads implementation, which
! 40: expect the standard malloc.
! 41:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>