Skip to content

Split out globalExclusive = true flag from vanilla exclusive = true#7069

Merged
lihaoyi merged 11 commits into
com-lihaoyi:mainfrom
lihaoyi:exclusive-split
May 4, 2026
Merged

Split out globalExclusive = true flag from vanilla exclusive = true#7069
lihaoyi merged 11 commits into
com-lihaoyi:mainfrom
lihaoyi:exclusive-split

Conversation

@lihaoyi

@lihaoyi lihaoyi commented May 4, 2026

Copy link
Copy Markdown
Member

Follow up from #6955

exclusive = true makes the command exclusive only within this launcher, which is used for commands that you want to run single-threaded per launcher e.g. to avoid interleaving with other tasks in the terminal logs, whereas globalExclusive = true takes the global exclusive write lock which is useful for tasks which actually do global side effects that should not be run concurrently even with other launchers.

Most exclusive = true tasks remain unchanged, but those like clean, bspClean, scalafmt, init, etc. are marked like globalExclusive = true as part of this PR

Also includes some code to make sure we release the locks when doing nested evaluations, so e.g. show evaluating tasks uses the locking strategy of the tasks it evaluates

@lihaoyi

lihaoyi commented May 4, 2026

Copy link
Copy Markdown
Member Author

Seems CI mostly passed on my fork https://github.com/lihaoyi/mill-1/actions/runs/25316708936/job/74216990258

@lihaoyi lihaoyi merged commit 15943af into com-lihaoyi:main May 4, 2026
34 of 36 checks passed
@lefou lefou added this to the 1.2.0 milestone May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants