diff --git a/runtime/hsa-runtime/core/util/lnx/os_linux.cpp b/runtime/hsa-runtime/core/util/lnx/os_linux.cpp index 4d62979829..88e860b890 100644 --- a/runtime/hsa-runtime/core/util/lnx/os_linux.cpp +++ b/runtime/hsa-runtime/core/util/lnx/os_linux.cpp @@ -717,15 +717,15 @@ SharedMutex CreateSharedMutex() { } #endif - pthread_rwlock_t* lock = new pthread_rwlock_t; - err = pthread_rwlock_init(lock, &attrib); + std::unique_ptr lock(new pthread_rwlock_t); + err = pthread_rwlock_init(lock.get(), &attrib); if (err != 0) { fprintf(stderr, "rw lock init failed: %s\n", strerror(err)); return nullptr; } pthread_rwlockattr_destroy(&attrib); - return lock; + return lock.release(); } bool TryAcquireSharedMutex(SharedMutex lock) {