/SimpleObjectPool

Simple thread-safe object pool in Objective-C

Primary LanguageObjective-CApache License 2.0Apache-2.0

SimpleObjectPool

Simple implementation of a thread-safe object pool.

Version License Platform Build

Pool

Usage

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];

Installation

Install via CocoaPods.

Contribute

Pull requests welcome!

Support

If you are having issues, please let me know.

Development

This project includes unit tests. To run them, run pod install inside the TestProject folder, then load the workspace and execute the test action.

License

This project is licensed under the Apache license.