aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/mem.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetLib/src/mem.cc')
-rw-r--r--Carpet/CarpetLib/src/mem.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/mem.cc b/Carpet/CarpetLib/src/mem.cc
index b6b1c9c8e..d8603591b 100644
--- a/Carpet/CarpetLib/src/mem.cc
+++ b/Carpet/CarpetLib/src/mem.cc
@@ -150,6 +150,25 @@ has_clients () const
+// Memory usage
+template<typename T>
+size_t
+mem<T>::
+memory ()
+ const
+{
+ return
+ memoryof (storage_) +
+ memoryof (nelems_) +
+ memoryof (vectorlength_) +
+ memoryof (owns_storage_) +
+ memoryof (clients_) +
+ memoryof (num_clients_) +
+ (owns_storage_ ? sizeof (T) * vectorlength_ * nelems_ : 0);
+}
+
+
+
size_t const mempool::chunksize;
size_t const mempool::align;
@@ -205,6 +224,25 @@ alloc (size_t nbytes)
+// Memory usage
+size_t
+mempool::
+memory ()
+ const
+{
+ return
+ memoryof (chunks) +
+ memoryof (freeptr) +
+ memoryof (freesize) +
+ (chunksize * chunks.size());
+}
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+
+
extern "C" void CarpetLib_setmemlimit (CCTK_ARGUMENTS);
void CarpetLib_setmemlimit (CCTK_ARGUMENTS)