1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be
3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file.
4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/disk_cache/file_lock.h"
6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace disk_cache {
8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottFileLock::FileLock(BlockFileHeader* header) {
10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  updating_ = &header->updating;
11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  (*updating_)++;
12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  acquired_ = true;
13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid FileLock::Lock() {
16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  if (acquired_)
17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    return;
18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  (*updating_)++;
19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid FileLock::Unlock() {
22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  if (!acquired_)
23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    return;
24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  (*updating_)--;
25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}  // namespace disk_cache
28