0

OpenWrt用のマルチスレッド キャッシング プロキシを開発しました(ルーター用の Linux のため、利用できる RAM はほとんどありません)。Boost および Curl ライブラリを使用しました。正常に動作しますが、RAM 消費量の増加が止まりません (メモリ リーク)。

  • 動的に割り当てられたすべての変数を解放します
  • 開いているすべてのファイルを閉じます
  • 初期化されたカール ハンドルをクリーンアップする
  • グローバル変数は定数です

これが私のメインコードの一部です:

while (true) {            
            ip::tcp::socket* socket = new ip::tcp::socket(io_service);
            acceptor.accept(*socket);
            pthread_t thread;
            pthread_create(&thread, NULL, handleRequest_thread, (void*) socket);            
            pthread_detach(thread);            
        }

メモリリークが「handleRequest_thread」で発生することは確かなので、私の質問は次のとおりです。スレッドが終了した後にすべてのリソース (メモリ、開いているファイルなど) を解放する方法はありますか?

4

2 に答える 2