diff options
Diffstat (limited to 'net/proxy/single_threaded_proxy_resolver.cc')
-rw-r--r-- | net/proxy/single_threaded_proxy_resolver.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/net/proxy/single_threaded_proxy_resolver.cc b/net/proxy/single_threaded_proxy_resolver.cc index 01c35fa..af8d7bf 100644 --- a/net/proxy/single_threaded_proxy_resolver.cc +++ b/net/proxy/single_threaded_proxy_resolver.cc @@ -11,6 +11,18 @@ namespace net { +namespace { + +class PurgeMemoryTask : public base::RefCountedThreadSafe<PurgeMemoryTask> { + public: + explicit PurgeMemoryTask(ProxyResolver* resolver) : resolver_(resolver) {} + void PurgeMemory() { resolver_->PurgeMemory(); } + private: + ProxyResolver* resolver_; +}; + +} + // SingleThreadedProxyResolver::SetPacScriptTask ------------------------------ // Runs on the worker thread to call ProxyResolver::SetPacScript. @@ -255,6 +267,14 @@ void SingleThreadedProxyResolver::CancelSetPacScript() { outstanding_set_pac_script_task_ = NULL; } +void SingleThreadedProxyResolver::PurgeMemory() { + if (thread_.get()) { + scoped_refptr<PurgeMemoryTask> helper(new PurgeMemoryTask(resolver_.get())); + thread_->message_loop()->PostTask(FROM_HERE, + NewRunnableMethod(helper.get(), &PurgeMemoryTask::PurgeMemory)); + } +} + int SingleThreadedProxyResolver::SetPacScript( const GURL& pac_url, const std::string& pac_bytes, |