{"push_id":723670775,"size":9,"distinct_size":2,"ref":"refs/heads/feature/5500","head":"95400a9a6b104478996c6f22ad29860f22328bc5","before":"e2bca5ce06ebb453dd6528c72f3c85acf69b4ec6","commits":[{"sha":"132e5f6f7b2bda6e2b657582ce4013ccd4955414","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Added new BCCache class based on GCD.\n\nBCCache is a high performance, non-locking cache. It uses the dispatch_barrier functions of GCD.\n\nThis commit includes the first version of the class, and a series of basic unit tests.","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/132e5f6f7b2bda6e2b657582ce4013ccd4955414"},{"sha":"bda2f85d0afa9edd4d03427f7b8f9e5f6fe25059","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Merge branch 'develop' into feature/5492-introduce-a-caching-class-based","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/bda2f85d0afa9edd4d03427f7b8f9e5f6fe25059"},{"sha":"148c24bf569d54ae882b25ce1a4351cb3021ee02","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Changed new cache class to use both an owner and a key.\n\nIt now stores mutable dictionaries, rather than the objects directly.","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/148c24bf569d54ae882b25ce1a4351cb3021ee02"},{"sha":"1b32ae225318d54ad22ba4b071e7173128e55ce2","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Added keys and block setters to BCCache.\n\nMethods now have a key argument that mean that you can store multiple objects for any given owner.\n\nThere is now a method for getting a cached value that reverts to calculating it in a block if there is nothing cached. Semaphores are used to ensure that only one thread performs the calculation for any given owner. Rather than a semaphore per owner, a finite pool of semaphores is used.","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/1b32ae225318d54ad22ba4b071e7173128e55ce2"},{"sha":"6a7d121f79b72702ea7e95bda2ff1fa4810095c0","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Replaced dispatch_semaphores with NSRecursiveLock in BCCache.\n\nThe method where the object can be calculated by a block has to have the block called on the thread of that it is called on, and the block calculating the value may well trigger more data to be cached on that same thread. So the locking mechanism used to ensure no data is calculated twice needs to be reentrant. dispatch_semaphore_t can't cut it, so we have moved to a pool of NSRecursiveLocks.","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/6a7d121f79b72702ea7e95bda2ff1fa4810095c0"},{"sha":"c1e5a56071424e46b355cc6dd95fafd2ffeb05cf","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Made BCCache.h a public header.","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/c1e5a56071424e46b355cc6dd95fafd2ffeb05cf"},{"sha":"1f6cccf0419aa7b9221160c644175d9b6ee999b3","author":{"email":"c43b3d437865bd6fed035104c0f90462a5aec2ec@mac.com","name":"Drew McCormack"},"message":"Added test for deadlocking during recursive caching in BCCache.","distinct":false,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/1f6cccf0419aa7b9221160c644175d9b6ee999b3"},{"sha":"9e3887d5940dc489f498f0d0d728c000a7f42206","author":{"email":"1d6e1cf70ec6f9ab28d3ea4b27a49a77654d370e@pieteromvlee.net","name":"Pieter Omvlee"},"message":"Merge remote-tracking branch 'origin/develop' into feature/5500","distinct":true,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/9e3887d5940dc489f498f0d0d728c000a7f42206"},{"sha":"95400a9a6b104478996c6f22ad29860f22328bc5","author":{"email":"1d6e1cf70ec6f9ab28d3ea4b27a49a77654d370e@pieteromvlee.net","name":"Pieter Omvlee"},"message":"BCPointMultiply now has tests","distinct":true,"url":"https://api.github.com/repos/BohemianCoding/BCFoundation/commits/95400a9a6b104478996c6f22ad29860f22328bc5"}]}