{"push_id":657176231,"size":1,"distinct_size":1,"ref":"refs/heads/1369-unique-defaultfilerequest","head":"18f969f061a7a8dca53bd29f3264bef88bbde46e","before":"84ef068591c12e7dde77596688aa7ae49f3c19e4","commits":[{"sha":"18f969f061a7a8dca53bd29f3264bef88bbde46e","author":{"email":"2ecb494ba695d48ca3123a4d6e6bafc656cc287d@gmail.com","name":"John Firebaugh"},"message":"Cancel cache requests\n\nThis avoids a situation where DefaultFileSource request could get double\nnotified. This could happen in the following situation:\n\nA request for http://example.com is made. This triggers a cache get.\nWhile the cache get is pending, the request is canceled. This removes it\nfrom pending. Then, still while the cache get is pending, a second\nrequest is made for the same resource. This adds an entry back to\npending and queues another cache request, even though the first one is\nstill pending. Now both cache requests resolve to misses, resulting in\ntwo HTTP requests for the same resource. The first one will notify as\nexpected, the second one will have bound a DefaultFileRequest* in the\nlambda that gets invalidated by the first notify's pending.erase, and\nwhen it gets notified, a crash occurs.\n\nFixes #1369","distinct":true,"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/commits/18f969f061a7a8dca53bd29f3264bef88bbde46e"}]}