)]}'
{
  "commit": "10decc7c19bd0db30228932ef5d59d297b430977",
  "tree": "236ebb7af4b0748d4b639f9149187cb89926c89c",
  "parents": [
    "ce2c834f70551b1cee463a1e24a6a9673ca0bee5"
  ],
  "author": {
    "name": "Todd Volkert",
    "email": "tvolkert@users.noreply.github.com",
    "time": "Tue May 16 08:25:51 2017 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 16 08:25:51 2017 -0700"
  },
  "message": "Fix race condition in protocol_discovery.dart (#10092)\n\nFor some reaosn, when we discovered our URI, we were re-instantiating\r\nthe `Completer` instance variable whose future we listen to in `nextUri()`.\r\nThis led to a race between a caller calling `nextUri()` and us discovering\r\nthe URI. If we happened to discover our URI before a caller called\r\n`nextUri()`, then they would be left waiting on a future from the newly\r\nallocated `Completer` (which would never complete).\r\n\r\nFixes #10064",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2556eca6026baa9c6ad4957797713064a9d12330",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/android/android_device.dart",
      "new_id": "3df613eb45252648082986adbc5d7effdc457caf",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/android/android_device.dart"
    },
    {
      "type": "modify",
      "old_id": "9cb85566b14b69e3a6d8f9ae34a34f2f89f1f0a1",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/ios/devices.dart",
      "new_id": "8710c6f7370f07276c670c5eaa15053bcc08b665",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/ios/devices.dart"
    },
    {
      "type": "modify",
      "old_id": "c4721aabbb4338063090789aa3e2efd1a97cf57c",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/ios/simulators.dart",
      "new_id": "d4ec64f4f5084cb9aec4efcaa013cc1bccd31fc4",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/ios/simulators.dart"
    },
    {
      "type": "modify",
      "old_id": "c4a6e12635c195bfd5d8d02dd9637361dabfae38",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/protocol_discovery.dart",
      "new_id": "d3f3654abe4c6429d5a3767adef9b556be5d5113",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/protocol_discovery.dart"
    },
    {
      "type": "modify",
      "old_id": "ed7439738457fdf8d1b23dcde6d1987c51e33c59",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/protocol_discovery_test.dart",
      "new_id": "d9237e0545357c154f6938d334f09ba628eaee15",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/protocol_discovery_test.dart"
    }
  ]
}
