[sourcekit] Use a shared_ptr for the SwiftASTManager

When the server shuts down we may still have outstanding async work to
build an AST, so use a shared_ptr + weak_ptr instead of unique_ptr +
unowned references.
This commit is contained in:
Ben Langmuir
2018-09-19 14:56:29 -07:00
parent c6776db83d
commit cc22c61d92
5 changed files with 31 additions and 23 deletions

View File

@@ -84,7 +84,7 @@ public:
typedef std::shared_ptr<SwiftASTConsumer> SwiftASTConsumerRef;
class SwiftASTManager {
class SwiftASTManager : public std::enable_shared_from_this<SwiftASTManager> {
public:
explicit SwiftASTManager(SwiftLangSupport &LangSupport);
~SwiftASTManager();
@@ -131,8 +131,6 @@ public:
void removeCachedAST(SwiftInvocationRef Invok);
struct Implementation;
private:
Implementation &Impl;
};