// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/profiles/refcounted_profile_keyed_service.h" namespace impl { // static void RefcountedProfileKeyedServiceTraits::Destruct( const RefcountedProfileKeyedService* obj) { if (obj->requires_destruction_on_thread_ && !content::BrowserThread::CurrentlyOn(obj->thread_id_)) { content::BrowserThread::DeleteSoon(obj->thread_id_, FROM_HERE, obj); } else { delete obj; } } } // namespace impl RefcountedProfileKeyedService::RefcountedProfileKeyedService() : requires_destruction_on_thread_(false), thread_id_(content::BrowserThread::UI) { } RefcountedProfileKeyedService::RefcountedProfileKeyedService( const content::BrowserThread::ID thread_id) : requires_destruction_on_thread_(true), thread_id_(thread_id) { } RefcountedProfileKeyedService::~RefcountedProfileKeyedService() {}