{"push_id":904808332,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"765a488494dac0ed38d2b81742c06467b79d96b2","before":"a63d9edcfb8a714a17492517927aa114dea8fea0","commits":[{"sha":"765a488494dac0ed38d2b81742c06467b79d96b2","author":{"email":"c7f213d0561b2da2719d24aa9ac9e27c73a6a502@gmail.com","name":"Richard W. Eggert II"},"message":"[SPARK-9026][SPARK-4514] Modifications to JobWaiter, FutureAction, and AsyncRDDActions to support non-blocking operation\n\nThese changes rework the implementations of `SimpleFutureAction`, `ComplexFutureAction`, `JobWaiter`, and `AsyncRDDActions` such that asynchronous callbacks on the generated `Futures` NEVER block waiting for a job to complete. A small amount of mutex synchronization is necessary to protect the internal fields that manage cancellation, but these locks are only held very briefly and in practice should almost never cause any blocking to occur. The existing blocking APIs of these classes are retained, but they simply delegate to the underlying non-blocking API and `Await` the results with indefinite timeouts.\n\nAssociated JIRA ticket: https://issues.apache.org/jira/browse/SPARK-9026\nAlso fixes: https://issues.apache.org/jira/browse/SPARK-4514\n\nThis pull request contains all my own original work, which I release to the Spark project under its open source license.\n\nAuthor: Richard W. Eggert II <richard.eggert@gmail.com>\n\nCloses #9264 from reggert/fix-futureaction.","distinct":true,"url":"https://api.github.com/repos/apache/spark/commits/765a488494dac0ed38d2b81742c06467b79d96b2"}]}