diff options
| -rw-r--r-- | vulkan/libvulkan/layers_extensions.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/vulkan/libvulkan/layers_extensions.cpp b/vulkan/libvulkan/layers_extensions.cpp index 96c556393c..b32977a760 100644 --- a/vulkan/libvulkan/layers_extensions.cpp +++ b/vulkan/libvulkan/layers_extensions.cpp @@ -165,8 +165,13 @@ void LayerLibrary::Close() { std::lock_guard<std::mutex> lock(mutex_); if (--refcount_ == 0) { ALOGV("closing layer library '%s'", path_.c_str()); - dlclose(dlhandle_); - dlhandle_ = nullptr; + std::string error_msg; + if (!android::CloseNativeLibrary(dlhandle_, native_bridge_, &error_msg)) { + ALOGE("failed to unload library '%s': %s", path_.c_str(), error_msg.c_str()); + refcount_++; + } else { + dlhandle_ = nullptr; + } } } |