Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor RuntimeFramework to ensure thread-safety #173

Closed
1 of 5 tasks
ChrisMaddock opened this issue Feb 4, 2017 · 2 comments
Closed
1 of 5 tasks

Refactor RuntimeFramework to ensure thread-safety #173

ChrisMaddock opened this issue Feb 4, 2017 · 2 comments

Comments

@ChrisMaddock
Copy link
Member

ChrisMaddock commented Feb 4, 2017

This came up in debugging #168. The inline code comment covers everything, I think.

//RuntimeFramework was originally created for use in
// a single-threaded environment. The introduction of parallel
// execution and especially parallel loading of tests has
// exposed some weaknesses.
//
// Ideally, we should remove all knowledge of the environment
// from RuntimeFramework. An instance of RuntimeFramework does
// not need to know, for example, if it is available on the
// current system. In the present architecture, that's really
// the job of the RuntimeFrameworkService. Other functions
// may actually belong in TestAgency.
//
// All the static properties of RuntimeFrameowork need to be
// examined for thread-safety, particularly CurrentFramework
// and AvailableFrameworks. The latter caused a problem with
// parallel loading, which has been fixed for now through a
// hack added to RuntimeFrameworkService. We may be able to
// move all this functionality to services, eliminating the
// use of public static properties here.

ToDo:

  • CurrentFramework
  • AvailableFrameworks Interface for GUI dependency
  • AvailableFrameworks
  • MonoVersion/MonoPrefix/MonoExePath (which relate to available versions of mono, not the mono the current RuntimeFramework object represents)
  • GetBestAvailableFramework()
@ChrisMaddock
Copy link
Member Author

(Moving the now deleted comment to a PR, to keep discussion in one place.)

@CharliePoole
Copy link
Collaborator

Closing this as obsolete wrt the new codebase. See issue #1168

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants