Parcourir la source

Minor modification to better support garbage collection (draining autorelease pools instead of releasing them).

Robbie Hanson il y a 15 ans
Parent
commit
d5e1916659

BIN
Benchmarking/Results/Lumberjack Benchmark (iPhone 3GS).ograph


+ 4 - 4
Lumberjack/DDFileLogger.m

@@ -103,7 +103,7 @@
 				
 				[self deleteOldLogFiles];
 				
-				[pool release];
+				[pool drain];
 			};
 			
 			dispatch_async([DDLog loggingQueue], block);
@@ -570,7 +570,7 @@
 			maximumFileSize = newMaximumFileSize;
 			[self maybeRollLogFileDueToSize];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		if (dispatch_get_current_queue() == loggerQueue)
@@ -676,7 +676,7 @@
 			rollingFrequency = newRollingFrequency;
 			[self maybeRollLogFileDueToAge:nil];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		if (dispatch_get_current_queue() == loggerQueue)
@@ -796,7 +796,7 @@
 		dispatch_block_t block = ^{
 			NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 			[self rollLogFileNow];
-			[pool release];
+			[pool drain];
 		};
 		dispatch_async([DDLog loggingQueue], block);
 		

+ 8 - 8
Lumberjack/DDLog.m

@@ -235,7 +235,7 @@ typedef struct LoggerNode LoggerNode;
 			
 			[self lt_addLogger:logger];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		dispatch_async(loggingQueue, addLoggerBlock);
@@ -265,7 +265,7 @@ typedef struct LoggerNode LoggerNode;
 			
 			[self lt_removeLogger:logger];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		dispatch_async(loggingQueue, removeLoggerBlock);
@@ -293,7 +293,7 @@ typedef struct LoggerNode LoggerNode;
 			
 			[self lt_removeAllLoggers];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		dispatch_async(loggingQueue, removeAllLoggersBlock);
@@ -450,7 +450,7 @@ typedef struct LoggerNode LoggerNode;
 			
 			[self lt_log:logMessage];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		if (flag)
@@ -513,7 +513,7 @@ typedef struct LoggerNode LoggerNode;
 			
 			[self lt_flush];
 			
-			[pool release];
+			[pool drain];
 		};
 		
 		dispatch_sync(loggingQueue, flushBlock);
@@ -657,7 +657,7 @@ typedef struct LoggerNode LoggerNode;
 	
 	[[NSRunLoop currentRunLoop] run];
 	
-	[pool release];
+	[pool drain];
 }
 
 #endif
@@ -890,7 +890,7 @@ typedef struct LoggerNode LoggerNode;
 					
 					[currentNode->logger logMessage:logMessage];
 					
-					[pool release];
+					[pool drain];
 				};
 				
 				dispatch_group_async(loggingGroup, currentNode->loggerQueue, loggerBlock);
@@ -913,7 +913,7 @@ typedef struct LoggerNode LoggerNode;
 					
 					[currentNode->logger logMessage:logMessage];
 					
-					[pool release];
+					[pool drain];
 				};
 				
 				dispatch_sync(currentNode->loggerQueue, loggerBlock);