blob: d20fe2161ef0dfe4472b25f625e48568f3aa850a [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "rlz/win/lib/lib_mutex.h"
#include <windows.h>
#include "base/win/windows_version.h"
namespace {
const long kTimeoutMs = 5000L;
const wchar_t kMutexName[] = L"{A946A6A9-917E-4949-B9BC-6BADA8C7FD63}";
} // namespace
namespace rlz_lib {
LibMutex::LibMutex() : acquired_(false), mutex_(NULL) {
mutex_ = CreateMutex(NULL, FALSE, kMutexName);
if (mutex_)
acquired_ = (WAIT_OBJECT_0 == WaitForSingleObject(mutex_, kTimeoutMs));
}
LibMutex::~LibMutex() {
if (acquired_)
ReleaseMutex(mutex_);
if (mutex_)
CloseHandle(mutex_);
}
} // namespace rlz_lib