Annotation of OpenXM_contrib/gc/README.sgi, Revision 1.1.1.1
1.1 maekawa 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>