1.1 --- a/libfsserver/lib/mapping/copied_page_mapper.cc Sat May 28 23:52:48 2022 +0200
1.2 +++ b/libfsserver/lib/mapping/copied_page_mapper.cc Sun May 29 00:58:31 2022 +0200
1.3 @@ -37,10 +37,18 @@
1.4 _size = _mapper->get_data_size();
1.5 }
1.6
1.7 -/* Upon deallocation, purge active pages. */
1.8 +/* Upon deallocation, release allocated flexpages. */
1.9
1.10 CopiedPageMapper::~CopiedPageMapper()
1.11 {
1.12 + while (!_queue.empty())
1.13 + {
1.14 + Flexpage *flexpage = _queue.front();
1.15 +
1.16 + _queue.pop_front();
1.17 + _memory.release(flexpage->region);
1.18 + delete flexpage;
1.19 + }
1.20 }
1.21
1.22 /* Interface for the pager. */
1.23 @@ -136,9 +144,10 @@
1.24
1.25 memcpy((void *) region->start, (const void *) flexpage->region->start, flexpage->size);
1.26
1.27 - /* Register the flexpage for future accesses. */
1.28 + /* Register the flexpage for future accesses and for deallocation. */
1.29
1.30 _map.insert(replicated);
1.31 + _queue.push_back(replicated);
1.32 return replicated;
1.33 }
1.34