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 -DGC_IRIX_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 |
|
---|