|  | @@ -25,7 +25,14 @@ function SysOSAlloc(size: ptruint): pointer;
 | 
	
		
			
				|  |  |  var values: array[0..2] of dword;
 | 
	
		
			
				|  |  |  {$ENDIF}
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  | +{$IFDEF AMIGA}
 | 
	
		
			
				|  |  | +  { The mutex locking is only needed for AmigaOS, AROS and MorphOS has MEMF_SEM_PROTECTED }
 | 
	
		
			
				|  |  | +  ObtainSemaphore(ASYS_heapSemaphore);
 | 
	
		
			
				|  |  | +{$ENDIF}
 | 
	
		
			
				|  |  |    result:=AllocPooled(ASYS_heapPool,size);
 | 
	
		
			
				|  |  | +{$IFDEF AMIGA}
 | 
	
		
			
				|  |  | +  ReleaseSemaphore(ASYS_heapSemaphore);
 | 
	
		
			
				|  |  | +{$ENDIF}
 | 
	
		
			
				|  |  |  {$IFDEF ASYS_FPC_MEMDEBUG}
 | 
	
		
			
				|  |  |    values[0]:=dword(result);
 | 
	
		
			
				|  |  |    values[1]:=dword(size);
 | 
	
	
		
			
				|  | @@ -41,7 +48,13 @@ procedure SysOSFree(p: pointer; size: ptruint);
 | 
	
		
			
				|  |  |  var values: array[0..2] of dword;
 | 
	
		
			
				|  |  |  {$ENDIF}
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  | +{$IFDEF AMIGA}
 | 
	
		
			
				|  |  | +  ObtainSemaphore(ASYS_heapSemaphore);
 | 
	
		
			
				|  |  | +{$ENDIF}
 | 
	
		
			
				|  |  |    FreePooled(ASYS_heapPool,p,size);
 | 
	
		
			
				|  |  | +{$IFDEF AMIGA}
 | 
	
		
			
				|  |  | +  ReleaseSemaphore(ASYS_heapSemaphore);
 | 
	
		
			
				|  |  | +{$ENDIF}
 | 
	
		
			
				|  |  |  {$IFDEF ASYS_FPC_MEMDEBUG}
 | 
	
		
			
				|  |  |    values[0]:=dword(p);
 | 
	
		
			
				|  |  |    values[1]:=dword(size);
 |