{"ref":"refs/heads/master","commits":[{"author":{"name":"Luke Daley","email":"2934526b788a419c15c351c8462a7a7eef4633fb@ldaley.com"},"sha":"b583c7e0b705bb23bac64f3223411461c378a456","message":"Some generic caching utilities.\n\nTests will follow. Need to get this up to share with Szczepan.","url":"https://api.github.com/repos/gradle/gradle/commits/b583c7e0b705bb23bac64f3223411461c378a456"},{"author":{"name":"Luke Daley","email":"2934526b788a419c15c351c8462a7a7eef4633fb@ldaley.com"},"sha":"c2af61f77ed50ca2b3e1910c175677e6a6e86dac","message":"use on PersistentDaemonRegistry instance per physical daemon registry file, effectively serialising access to the file across the whole jvm.\n\nThis is not quite true as a static map is used to cache instances, therefore if there are multiple copies of the DaemonRegistryServices _class_ floating around this strategy will break down.","url":"https://api.github.com/repos/gradle/gradle/commits/c2af61f77ed50ca2b3e1910c175677e6a6e86dac"},{"author":{"name":"Luke Daley","email":"2934526b788a419c15c351c8462a7a7eef4633fb@ldaley.com"},"sha":"8b407d8b7f19c7ef5c0fc30beb113360413d082a","message":"Test for daemon registry instance reuse per registry file","url":"https://api.github.com/repos/gradle/gradle/commits/8b407d8b7f19c7ef5c0fc30beb113360413d082a"},{"author":{"name":"Luke Daley","email":"2934526b788a419c15c351c8462a7a7eef4633fb@ldaley.com"},"sha":"4f56e208d3a1858086c5bf44a32772ef15d2faec","message":"Share the daemon registry cache across daemon registry services instances to ensure serialised access to the cache storage.","url":"https://api.github.com/repos/gradle/gradle/commits/4f56e208d3a1858086c5bf44a32772ef15d2faec"},{"author":{"name":"Luke Daley","email":"2934526b788a419c15c351c8462a7a7eef4633fb@ldaley.com"},"sha":"bd37a8199cb607b8c3c5b84c747244dbfdc8b8e3","message":"test for map backed cache","url":"https://api.github.com/repos/gradle/gradle/commits/bd37a8199cb607b8c3c5b84c747244dbfdc8b8e3"},{"author":{"name":"Szczepan Faber","email":"1bddaee59246cc12116f0665609ef28a1e299469@gmail.com"},"sha":"4339041adcd60b5871485e744a8c10a1fdcc269d","message":"Solved some concurrency problems in tooling api.\n\nThose are the most apparent problems. The next issue in the queue is making sure the logging is routed correctly. It is also exposable by the concurrent tooling api integration test, albeit rarely. The test remains ignored until all concurrency related problems are solved.\n\n- Introduced SynchronizedServiceRegistry. It is needed by the GradleConnector, who keep static SERVICES instance.\n- Added thread safety to the CachingToolingImplementationLoader. This was the simplest way to go. I plan to change it later and instead singletonize LazyConnection which is already thread safe.","url":"https://api.github.com/repos/gradle/gradle/commits/4339041adcd60b5871485e744a8c10a1fdcc269d"},{"author":{"name":"Szczepan Faber","email":"1bddaee59246cc12116f0665609ef28a1e299469@gmail.com"},"sha":"cb50799e0087b88ffbae8e424936ee280974d3a3","message":"Made checkstyle happy","url":"https://api.github.com/repos/gradle/gradle/commits/cb50799e0087b88ffbae8e424936ee280974d3a3"},{"author":{"name":"Szczepan Faber","email":"1bddaee59246cc12116f0665609ef28a1e299469@gmail.com"},"sha":"554dee0007459ed2c536017e64c804a6d8c7c995","message":"Merge branch 'sf-concurrent-tooling'\n\nVery boring conflict, changed Integer -> int:\n\n\tsubprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DaemonClientServices.java","url":"https://api.github.com/repos/gradle/gradle/commits/554dee0007459ed2c536017e64c804a6d8c7c995"}],"head":"554dee0007459ed2c536017e64c804a6d8c7c995","push_id":51340815,"size":8}