diff options
-rw-r--r-- | lib/puppet/provider.rb | 6 | ||||
-rw-r--r-- | lib/puppet/type.rb | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/puppet/provider.rb b/lib/puppet/provider.rb index f614eb0e9..f51ea4450 100644 --- a/lib/puppet/provider.rb +++ b/lib/puppet/provider.rb @@ -139,6 +139,12 @@ class Puppet::Provider return true end + # Remove the reference to the model, so GC can clean up. + def clear + @model = nil + end + + # Retrieve a named command. def command(name) self.class.command(name) end diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index a5a8cf966..8f29d79bf 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -1262,6 +1262,12 @@ class Type < Puppet::Element @parent.delete(self) @parent = nil end + + # Remove the reference to the provider. + if defined? @provider + @provider.clear + @provider = nil + end end # Is the named state defined? |