Утечки памяти при использовании shared_mutex - PullRequest
4 голосов
/ 14 мая 2019

Следующий код приводит к увеличению использования памяти:

#include <shared_mutex>

class foo
{
public:
   void bar()
   {
      std::unique_lock lock(m_mtx);
   }
   std::shared_mutex m_mtx;
};

int main()
{
   while (1)
   {
      foo obj;
      obj.bar();
   }
}

Следующее не делает: (только изменяет тип мьютекса)

#include <mutex>

class foo
{
public:
   void bar()
   {
      std::unique_lock lock(m_mtx);
   }
   std::mutex m_mtx;
};

int main()
{
   while (1)
   {
      foo obj;
      obj.bar();
   }
}

Я использую Windows 7 ииспользуя диспетчер задач для отслеживания потребления памяти моей программой.

Я компилирую с помощью mingw и этой простой командной строки для компиляции:

g++.exe -std=c++17 -o mytest main.cpp

Что я делаю не так с использованием shared_mutex?

...