]>
Commit | Line | Data |
---|---|---|
73ffefd0 TT |
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 | ||
20bbd3cd TT |
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 |