Могу ли я «форсировать» параллельное выполнение зависимых целей? - PullRequest
0 голосов
/ 17 мая 2019

Скажем, у меня есть цель A, которая зависит от B, но я могу запустить A и B параллельно. Это возможно с Shake? Кажется, что need ... делает действия последовательными, что, конечно, имеет смысл, но это «особый» случай.

1 Ответ

0 голосов
/ 20 мая 2019

Дано:

"A" %> \_ -> do need ["B"]; ...
"B" %> \_ -> ...

Если вы выполните need ["A","B"], тогда он запустится A и B параллельно, но действие A будет немедленно приостановлено до тех пор, пока B не будет завершено. По какой причине безопасно запускать A и B параллельно? Если действие, вычисленное с помощью A, необходимо перезапустить при изменении B, но фактически не использует само B, вы можете изменить порядок на:

"A" %> \_ -> do ...; need ["B"]

Однако, если в действии A фактически используется B, то реального способа их параллельного запуска не существует.

...