This repository was archived by the owner on Dec 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 445
1.0RC preparation branch #610
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
It's useful to have the success of the state in the Finally handler that is called in-thread (the ITask-based Finally handlers already get this information), so add that to the callback. In order for the API not to be confusing, make the task affinity parameter mandatory on the Finally overloads that run on a separate thread. Fix the HookupHandlers method to use OnStart/Finally so that the callbacks get called on the same thread and not spin up new threads just to set flags. They're already running on non-main threads and doing very simple things so this should be fine.
…chain (so it can fail and we can catch it)
Make the downloads in pairs (file and md5) in a downloader class that can run them all parallel. I kept getting deadlocks and it's something to do with how the concurrent scheduler is set up, so replaced it with a scheduler that just fires a thread per task and does nothing smart about it.
Killing some unused code
Since we aren't embedding the zips in the dll anymore, tests that rely on them were trying to download things, and that causes timeouts. Embed the zips in the test assembly so they're available for the tests, and put them in place when starting up the test web server as well, so they can be served for downloading tests.
Most of our objects are singletons that live through the lifetime of the process (the lifetime being the time between Unity reloading domains whenever it recompiles or the user enters play mode), we never really worry much about unhooking events to allow objects to be GC'd and to not raise events on objects that are dead. In our tests, however, that's a problem, since we're not reloading the domain and killing all the things between one test and the other, which means events can definitely leak and may cause problems. This makes sure we break event loops so that tests don't trample all over each other. It's not a thorough audit of everything that we need to dispose, but it's a start.
It's a good opportunity to validate the cache when the view asks whether there's more up to date data, otherwise views will never get updated data if the cache is invalid already.
…things Make sure events are unhooked when we're disposing so they don't leak
…refresh Cache refresh fixes for 1.0rc/master
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Includes:
This branch is meant to be a target for accumulating patches to test as a whole while PRs are under review. Any other branches that need the latest code can be based off of this one. Anything that goes into master gets merged into this.
This is not meant for reviewing (unless you want to see everything in one place), but for testing.