42 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Performance of the incremental collector can be greatly enhanced with
 | |
| -DNO_EXECUTE_PERMISSION.
 | |
| 
 | |
| The collector should run with all of the -32, -n32 and -64 ABIs.  Remember to
 | |
| define the AS macro in the Makefile to be "as -64", or "as -n32".
 | |
| 
 | |
| If you use -DREDIRECT_MALLOC=GC_malloc with C++ code, your code should make
 | |
| at least one explicit call to malloc instead of new to ensure that the proper
 | |
| version of malloc is linked in.
 | |
| 
 | |
| Sproc threads are not supported in this version, though there may exist other
 | |
| ports.
 | |
| 
 | |
| Pthreads support is provided.  This requires that:
 | |
| 
 | |
| 1) You compile the collector with -DGC_IRIX_THREADS specified in the Makefile.
 | |
| 
 | |
| 2) You have the latest pthreads patches installed.  
 | |
| 
 | |
| (Though the collector makes only documented pthread calls,
 | |
| it relies on signal/threads interactions working just right in ways
 | |
| that are not required by the standard.  It is unlikely that this code
 | |
| will run on other pthreads platforms.  But please tell me if it does.)
 | |
| 
 | |
| 3) Every file that makes thread calls should define IRIX_THREADS and then
 | |
| include gc.h.  Gc.h redefines some of the pthread primitives as macros which
 | |
| also provide the collector with information it requires.
 | |
| 
 | |
| 4) pthread_cond_wait and pthread_cond_timed_wait should be prepared for
 | |
| premature wakeups.  (I believe the pthreads and realted standards require this
 | |
| anyway.  Irix pthreads often terminate a wait if a signal arrives.
 | |
| The garbage collector uses signals to stop threads.)
 | |
| 
 | |
| 5) It is expensive to stop a thread waiting in IO at the time the request is
 | |
| initiated.  Applications with many such threads may not exhibit acceptable
 | |
| performance with the collector.  (Increasing the heap size may help.)
 | |
| 
 | |
| 6) The collector should not be compiled with -DREDIRECT_MALLOC.  This
 | |
| confuses some library calls made by the pthreads implementation, which
 | |
| expect the standard malloc.
 | |
| 
 |