[WIP/RFC] Add some more IO locks to printing #32159
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Right now you can get mixed output with async code:
In this case
printstyled
is actually doing a singleprint
under the hood, after writing the string to a buffer. While there is alock
in varargprint
, there was nolock
in single-string print. This means that the foo string could be shoved right in the middle of the bars as it was ignoring the lock that varargprint
had.AFAICT this just means we need more locks. I have added some locks. If people agree, I will add all the locks.
I also think that
lock(f, x::AbstrackLock)
should probably be expanded tolock(f, x::Any)
.