1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-10 00:42:40 +01:00
phorge-arcanist/src
epriestley ceb082ef6b Give Futures clearer start/end and exception semantics
Summary:
Ref T13555. Currently:

  - If an exception is raised in "start()", the exception state is not set on the future.
  - Futures do not always call "startFuture()" before starting, and do not always call "endFuture()" once they become resolvable.
  - If you start an ExecFuture which immediately fails and then call "getPID()" on it, you get an unclear exception.

Simplify these behaviors:

  - In FutureIterator, only start futures which have not already started.
  - When starting a future on any pathway, run start code.
  - When a future becomes resolvable on any pathway, run end code.
  - Raise a more clear exception when calling "getPID()" on a future with no subprocess.

Test Plan: Faked a failing subprocess with "$proc = null", ran "bin/phd debug taskmaster" etc. Got clearer errors and more consistent future lifecycle workflows.

Maniphest Tasks: T13555

Differential Revision: https://secure.phabricator.com/D21423
2020-07-23 11:22:20 -07:00
..
__tests__ Collapse Arcanist toolsets from "wilds" into "master", as an overlay layer 2020-02-13 14:10:46 -08:00
browse Add "--browse" to "arc upload" and update behavior, particularly "--json" 2020-05-01 09:13:01 -07:00
channel Move Phage to FuturePool 2020-04-05 05:56:21 -07:00
conduit Clean up some service profiler behavior in Conduit futures 2020-07-01 06:37:31 -07:00
config Remove "arc feature", "arc branch", "arc bookmark", and significant chunks of obsolete marker code 2020-06-08 16:27:31 -07:00
configuration Remove "arc feature", "arc branch", "arc bookmark", and significant chunks of obsolete marker code 2020-06-08 16:27:31 -07:00
console Improve grid layout in "arc branches" at various terminal widths 2020-06-30 15:50:06 -07:00
difference Fix an initialization issue in VectorTree 2020-05-04 15:50:26 -07:00
differential Merge "--draft" flag and related changes from "experimental" to "master" 2020-02-12 16:54:18 -08:00
docs Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
engine Implement "arc work", to replace "arc feature" 2020-06-08 16:27:27 -07:00
error Treat all PHP language-level errors as exceptions by default 2020-03-22 12:41:05 -07:00
events Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
exception Improve login/auth messages from Arcanist toolset workflows 2020-07-01 06:37:31 -07:00
extensions Changes to Arcanist for libphutil "extensions/" 2013-04-22 14:38:49 -07:00
filesystem Replace "PhutilFileTree" with a more abstract "VectorTree" 2020-04-28 12:09:56 -07:00
future Give Futures clearer start/end and exception semantics 2020-07-23 11:22:20 -07:00
hardpoint Implement "arc work", to replace "arc feature" 2020-06-08 16:27:27 -07:00
hgdaemon Fix a property name collision in ArcanistHgServerChannel 2017-02-16 05:44:10 -08:00
init Improve error handling in ArcanistRuntime when failing to load libraries 2020-02-25 14:07:22 -08:00
inspector Support inspection of remote refs with "arc inspect remote(...)" 2020-06-30 13:07:25 -07:00
internationalization Merge utility/support changes from "wilds" to "master" 2020-02-13 14:10:09 -08:00
ip Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
land Preserve bookmarks across "hg rebase --keep --collapse", and destroy them before "hg strip/prune" 2020-07-08 17:43:15 -07:00
lexer Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
lint When a linter raises a message at a nonexistent line, don't fatal during rendering 2020-06-12 12:31:02 -07:00
log Update "arc paste" for Toolsets 2020-04-13 15:01:51 -07:00
moduleutils Merge utility/support changes from "wilds" to "master" 2020-02-13 14:10:09 -08:00
object Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
parser Allow "arc" to accept any prefix of a command as that command 2020-06-08 16:26:58 -07:00
phage Allow "phage" to print execution status on SIGINT 2020-04-06 11:09:43 -07:00
progress Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
query Provide a more powerful query mechanism for "markers" (branches/bookmarks) 2020-06-08 16:27:20 -07:00
readableserializer Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
ref Implement Conduit login prompt behavior as a pure FutureProxy, not a Future-like object 2020-07-01 06:37:31 -07:00
repository Give Futures clearer start/end and exception semantics 2020-07-23 11:22:20 -07:00
runtime Improve login/auth messages from Arcanist toolset workflows 2020-07-01 06:37:31 -07:00
serviceprofiler Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
symbols Merge utility/support changes from "wilds" to "master" 2020-02-13 14:10:09 -08:00
toolset Drop intended support for "--anonymous" from Arcanist Toolsets 2020-07-01 06:37:31 -07:00
unit Merge utility/support changes from "wilds" to "master" 2020-02-13 14:10:09 -08:00
upload Implement Conduit login prompt behavior as a pure FutureProxy, not a Future-like object 2020-07-01 06:37:31 -07:00
utils Introduce "phutil_partition()" and natural case sorting for "msortv(...)" 2020-06-30 06:45:03 -07:00
work Update "arc land" display of build failures, and rename "DisplayRef" to "RefView" 2020-06-30 06:27:56 -07:00
workflow Implement Conduit login prompt behavior as a pure FutureProxy, not a Future-like object 2020-07-01 06:37:31 -07:00
workingcopy Introduce "arc inspect" and some of the new ref/hardpoint classes 2020-04-10 05:01:25 -07:00
workingcopyidentity Extend from Phobject 2015-06-15 15:47:33 +10:00
xsprintf In "arc land" under Git, confirm branch creation 2020-06-30 06:29:51 -07:00
__phutil_library_init__.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
__phutil_library_map__.php Clean up push failure messaging in "arc land" slightly 2020-07-08 15:30:17 -07:00