Page MenuHomePhabricator

Make "FutureIterator" queue management more formal
ClosedPublic

Authored by epriestley on Feb 27 2020, 2:13 PM.
Tags
None
Referenced Files
F18781892: D21036.diff
Sun, Oct 12, 11:59 PM
F18765270: D21036.id50109.diff
Tue, Oct 7, 10:29 AM
F18734172: D21036.id.diff
Tue, Sep 30, 10:49 PM
F18601691: D21036.diff
Sat, Sep 13, 1:11 PM
F18567684: D21036.id.diff
Sep 9 2025, 4:05 PM
F18367501: D21036.diff
Aug 27 2025, 11:45 PM
F18142577: D21036.id50142.diff
Aug 14 2025, 1:07 PM
F18112891: D21036.id.diff
Aug 12 2025, 9:47 PM
Subscribers
None

Details

Summary

Depends on D21035. Ref T11968. This allows a "FutureIterator" to hold futures which are blocked because of unresolved dependencies, and makes the resolution process more structured.

Test Plan

Ran unit tests, created this revision.

Diff Detail

Repository
rARC Arcanist
Branch
fx6
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 23927
Build 32929: Run Core Tests
Build 32928: arc lint + arc unit

Unit TestsFailed

TimeTest
15 msExecFutureTestCase::testResolveTimeoutTestShouldRunLessThan1Sec
EXCEPTION (Exception): Future has already started; futures can not start more than once. #0 /core/data/drydock/workingcopy-83/repo/arcanist/src/future/FutureIterator.php(390): Future->startFuture() #1 /core/data/drydock/workingcopy-83/repo/arcanist/src/future/FutureIterator.php(366): FutureIterator->moveFutureToWork('Future/638')
0 msAbstractDirectedGraphTestCase::testCyclicGraph
1 assertion(s) passed.
1 msAbstractDirectedGraphTestCase::testEdgeLoadFailure
1 assertion(s) passed.
0 msAbstractDirectedGraphTestCase::testNonTreeGraph
1 assertion(s) passed.
0 msAbstractDirectedGraphTestCase::testNoncyclicGraph
1 assertion(s) passed.
View Full Test Results (1 Failed · 488 Passed · 63 Skipped)