iqsharp icon indicating copy to clipboard operation
iqsharp copied to clipboard

Make most IWorkspace APIs async

Open rmshaffer opened this issue 5 years ago • 0 comments

This is a draft PR that makes most public IWorkspace APIs async and removes the public Initialization task that consumers needed to await before using the workspace. The async APIs wait for initialization to complete before returning their results.

This reduces the potential for callers to consume workspace APIs prior to the workspace being fully initialized. This is a follow-up to the changes made in #331 which introduced the async initialization of the workspace.

To do:

  • [ ] Fix test failures due to race conditions on startup related to assembly loading. Need to find a different mechanism for avoiding deadlocks during initialization while still guaranteeing that compilation has completed before consumers attempt to use the workspace.

rmshaffer avatar Oct 15 '20 15:10 rmshaffer