Files
sdk/runtime/vm/heap/spaces.h
T
Ryan Macnak 6c933a4488 [vm] Fix some TSAN failures. Migrate remaining uses of AtomicOperations to std::atomic.
Change-Id: I195232311a146248c601ef84640758db59083d12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121200
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-10-21 16:26:39 +00:00

35 lines
1.0 KiB
C++

// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef RUNTIME_VM_HEAP_SPACES_H_
#define RUNTIME_VM_HEAP_SPACES_H_
#include "platform/atomic.h"
#include "platform/globals.h"
// This file contains utilities shared by old and new space.
// TODO(koda): Create Space base class with Space::CurrentUsage().
namespace dart {
// Usage statistics for a space/generation at a particular moment in time.
class SpaceUsage {
public:
SpaceUsage() : capacity_in_words(0), used_in_words(0), external_in_words(0) {}
RelaxedAtomic<intptr_t> capacity_in_words;
RelaxedAtomic<intptr_t> used_in_words;
RelaxedAtomic<intptr_t> external_in_words;
intptr_t CombinedCapacityInWords() const {
return capacity_in_words + external_in_words;
}
intptr_t CombinedUsedInWords() const {
return used_in_words + external_in_words;
}
};
} // namespace dart
#endif // RUNTIME_VM_HEAP_SPACES_H_