f29bbd16f5
Adds 2 new methods to v2 plugin `Acquire` and `Release` which allow refcounting directly at the plugin level instead of just the store. Since a graphdriver is initialized exactly once, and is really managed by a separate object, it didn't really seem right to call `getter.Get()` to refcount graphdriver plugins. On shutdown it was particularly weird where we'd either need to keep a driver reference in daemon, or keep a reference to the pluggin getter in the layer store, and even then still store extra details on if the graphdriver is a plugin or not. Instead the plugin proxy itself will handle calling the neccessary refcounting methods directly on the plugin object. Also adds a new interface in `plugingetter` to account for these new functions which are not going to be implemented by v1 plugins. Changes terms `plugingetter.CREATE` and `plugingetter.REMOVE` to `ACQUIRE` and `RELEASE` respectively, which seems to be better adjectives for what we're doing. Signed-off-by: Brian Goff <cpuguy83@gmail.com> |
||
---|---|---|
.. | ||
drivers | ||
local | ||
store | ||
testutils | ||
validate.go | ||
validate_test.go | ||
validate_test_unix.go | ||
validate_test_windows.go | ||
volume.go | ||
volume_copy.go | ||
volume_copy_unix.go | ||
volume_copy_windows.go | ||
volume_linux.go | ||
volume_linux_test.go | ||
volume_propagation_linux.go | ||
volume_propagation_linux_test.go | ||
volume_propagation_unsupported.go | ||
volume_test.go | ||
volume_unix.go | ||
volume_unsupported.go | ||
volume_windows.go |