Simple implementation of a thread-safe object pool.
When the pool is empty, it naively creates another object using the createBlock.
ObjectPool *pool = [ObjectPool poolWithCreateBlock:^id(NSError **outError) {
NSLog(@"Opening database connection");
MyDBConnection *connection = [MyDBConnection connection]
if (![connection openWithError:outError])
return nil;
else
return connection;
}];
MyDBConnection *connection = [pool objectFromPoolWithError:nil];
// do stuff with connection
[pool returnObjectToPool:connection];
Install via CocoaPods.
- Issue Tracker: https://github.com/paulmelnikow/SimpleObjectPool/issues
- Source Code: https://github.com/paulmelnikow/SimpleObjectPool
Pull requests welcome!
If you are having issues, please let me know.
This project includes unit tests. To run them, run pod install
inside the
TestProject
folder, then load the workspace and execute the test action.
This project is licensed under the Apache license.