Skip to content
This repository has been archived by the owner on Feb 3, 2018. It is now read-only.
This repository has been archived by the owner on Feb 3, 2018. It is now read-only.

Refactor SourceMgr to eliminate concurrency problems, be generally sane #170

Closed
sdboyer opened this issue Feb 10, 2017 · 0 comments · Fixed by #196
Closed

Refactor SourceMgr to eliminate concurrency problems, be generally sane #170

sdboyer opened this issue Feb 10, 2017 · 0 comments · Fixed by #196

Comments

@sdboyer
Copy link
Owner

sdboyer commented Feb 10, 2017

Right now, the SourceMgr implementation (and its interaction with the contained source classes) is pretty messy. There is certainly some bad concurrency handling (as evidenced by intermittent failures of TestMultiDeduceThreadSafe()), and some race conditions. And, more generally, it's verging on spaghetti. It really needs refactoring.

The new model, I think, should make aggressive use of channels to manage the flow of calls and data through the system. It'd make it far easier to serialize and control access to segments where it's necessary, to offer the sort of control that would enable cancellation of calls (#159), and provide the sort of layering that would allow us to implement the needed on-disk caching (#130).

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

Successfully merging a pull request may close this issue.

1 participant