ngless-toolkit/ngless

Implement a setup phase for external modules

Opened this issue · 0 comments

unode commented

When using external modules we currently provide an init phase in addition to the actual execution phase.
init can be used to test if all requirements to execute the module are satisfied.

On 8459d7e I've introduced a lock such that init could be used for concurrent unsafe operations such as install/build software. The lock however gets in the way of execution since several jobs will fight for the same lock. Even worse, if a job fails during this phase, other jobs will be waiting for 24h+.

The discussed solution is to implement a setup phase that will lock but would be skipped once successfully finished. Much like a makefile rule with a setup.done target.