Fix WebIO integration, make Window's sync by default. #208
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.
I think the use of
Condition
over something likeFuture
fromDistributed
(builtin package) was a mistake but trying to rectify that wouldn't be worth it right now (and I'm not sure that anyone else will agree with me on that haha).Anyway, what this diff does:
Window()
sync by default (so that anything you do with the resulting Window is safe).Base.wait(::Window)
. After this returns, the Window should be safe to do things to (e.g.body!
).wait
-ed (I'd rather raise an error that says what you're trying to do doesn't make sense than just silently allowing it).If you try to do anything before
wait
ing the Window, I make no guarantees and I don't think Blink, in general, should try to do so.In the future™, we should probably just remove the
async
keyword in favor of telling the consumer to dowindowtask = @async Window()
.Ping @NHDaly.