summaryrefslogtreecommitdiffstats
path: root/base/lazy_instance.h
Commit message (Collapse)AuthorAgeFilesLines
* Rename BASE_API to BASE_EXPORT.darin@chromium.org2011-08-051-2/+2
| | | | | | | R=rvargas Review URL: http://codereview.chromium.org/7461141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95618 0039d316-1c4b-4281-b951-d872f2087c98
* Fix data races in LazyInstance<>.dvyukov@google.com2011-05-161-1/+20
| | | | | | | | BUG=82122 Review URL: http://codereview.chromium.org/6997014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85487 0039d316-1c4b-4281-b951-d872f2087c98
* Base: First pass at having base.dll: definition ofrvargas@google.com2011-03-221-2/+3
| | | | | | | | | | BASE_API and a few files that use it. BUG=76996 TEST=none Review URL: http://codereview.chromium.org/6725001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79056 0039d316-1c4b-4281-b951-d872f2087c98
* Comment out unused parameter names in function definitions,joi@chromium.org2011-02-251-1/+1
| | | | | | | | | | | | | | to adhere to the C++ Style Guide. Landing for roubert@google.com, original review http://codereview.chromium.org/6485028/ BUG=none TEST=none Review URL: http://codereview.chromium.org/6580049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76017 0039d316-1c4b-4281-b951-d872f2087c98
* Do not block in OwnershipService::IsAlreadyOwned on UI thread.dilmah@chromium.org2011-02-221-1/+14
| | | | | | | | | | | | Moved all stuff related to GetOwnershipStatus from user_cros_settings.cc where it was irrelevant to OwnershipService. Prefetch and cache ownership status in order not to block on UI thread. BUG=chromium:70097 TEST=Manual Review URL: http://codereview.chromium.org/6538057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75617 0039d316-1c4b-4281-b951-d872f2087c98
* Move base/thread.h to base/threading, fix up callers to use the new location.brettw@chromium.org2011-01-011-1/+1
| | | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6028009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70345 0039d316-1c4b-4281-b951-d872f2087c98
* Build fixsatish@chromium.org2010-12-141-1/+2
| | | | | | TBR=thakis git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69108 0039d316-1c4b-4281-b951-d872f2087c98
* Make members of Singleton<T> private and only visible to the singleton type. ↵satish@chromium.org2010-12-141-1/+13
| | | | | | | | | | | | | | | This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69107 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 66791 (change was innocent)willchan@chromium.org2010-11-191-1/+10
| | | | | | | | | | | | | | | | | | | Revert 66719 - Reland r65996. Disallows Singletons on non-joinable thread. Test breakages caused by this change have been fixed here or in other changelists. BUG=61753 TEST=none Review URL: http://codereview.chromium.org/5024003 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/5206005 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/5242002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66808 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66719 - Reland r65996. Disallows Singletons on non-joinable thread.willchan@chromium.org2010-11-191-10/+1
| | | | | | | | | | | | | | Test breakages caused by this change have been fixed here or in other changelists. BUG=61753 TEST=none Review URL: http://codereview.chromium.org/5024003 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/5206005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66791 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r65996. Disallows Singletons on non-joinable thread.willchan@chromium.org2010-11-191-1/+10
| | | | | | | | | | | Test breakages caused by this change have been fixed here or in other changelists. BUG=61753 TEST=none Review URL: http://codereview.chromium.org/5024003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66719 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 65996 (test breakage) - Disallow Singleton and LazyInstance on ↵willchan@chromium.org2010-11-131-9/+0
| | | | | | | | | | | | | | | | non-joinable threads. Fix all known instances or explicitly allow them. Usually the fix involves switching from Default traits to Lazy traits. BUG=61753 TEST=none Review URL: http://codereview.chromium.org/4635012 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/4980001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66071 0039d316-1c4b-4281-b951-d872f2087c98
* Disallow Singleton and LazyInstance on non-joinable threads.willchan@chromium.org2010-11-121-0/+9
| | | | | | | | | | | Fix all known instances or explicitly allow them. Usually the fix involves switching from Default traits to Lazy traits. BUG=61753 TEST=none Review URL: http://codereview.chromium.org/4635012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65996 0039d316-1c4b-4281-b951-d872f2087c98
* ThreadRestrictions: leak the thread local variableevan@chromium.org2010-10-211-0/+16
| | | | | | | | | | LazyInstances are destroyed by the AtExitManager, but we have threads that outlive the AtExitManager that could potentially access this. Review URL: http://codereview.chromium.org/3956003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63410 0039d316-1c4b-4281-b951-d872f2087c98
* Remove test isolation enforcement code.phajdan.jr@chromium.org2010-08-161-4/+0
| | | | | | | | | | | | | | | | | | | I think it was a failed experiment, and it only ever worked for base_unittests. This removes some potentially risky code from LazyInstance that was only needed for the test isolation. The lesson from this experiment is that removing singletons works better than trying to make tests work fine even when singletons are overused. TEST=none BUG=12710 Review URL: http://codereview.chromium.org/3127012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56229 0039d316-1c4b-4281-b951-d872f2087c98
* `#pragma once` for app, base, chrome, gfx, ipc, net, skia, viewsthakis@chromium.org2010-07-261-0/+1
| | | | | | | | | BUG=50273 TEST=everything still builds, build is 10% faster on windows, same speed on mac/linux TBR: erg git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53716 0039d316-1c4b-4281-b951-d872f2087c98
* Update dynamic annotations and move them to base/third_partytimurrrr@chromium.org2010-05-141-1/+1
| | | | | | Review URL: http://codereview.chromium.org/1992005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47252 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid a strict aliasing issue in LazyInstance.craig.schlenter@chromium.org2010-03-121-15/+21
| | | | | | | | | | | | The key change here is to use the return value from placement new rather than casting buf_. Avoiding the cast avoids the strict aliasing issue. BUG=28749 Review URL: http://codereview.chromium.org/548011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41434 0039d316-1c4b-4281-b951-d872f2087c98
* Isolate tests by running AtExit callbacks between them.phajdan.jr@chromium.org2009-11-191-0/+4
| | | | | | | | | | | | | | | | | | | | For now, this is only for base_unittests. The plan is to enable it for all unit tests. This should finally fix mysterious problems cause by Singletons surviving after one test etc. This change also adapts LazyInstance so that it can be reused after being destroyed. It is used very frequently, for example each time a MessageLoop is used. It is also worth noting that we had some problems in the past related to the MessageLoop being destroyed and re-instantiated in the same test executable. This patch should also fix that. TEST=none BUG=12710 Review URL: http://codereview.chromium.org/372057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32507 0039d316-1c4b-4281-b951-d872f2087c98
* Added dynamic annotation files into base/.deanm@chromium.org2009-06-261-0/+9
| | | | | | | | | | | | | | Added annotations for atomic reference counting, LazyInstance and Singleton classes. This changelist is a part of an effort of adding ThreadSanitizer support for Chromium. See http://code.google.com/p/data-race-test/wiki/ThreadSanitizer Patch by Timur Iskhodzhanov. Review URL: http://codereview.chromium.org/147008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19353 0039d316-1c4b-4281-b951-d872f2087c98
* NO CODE CHANGE (except one global std::wstring changed to const wchar_t* ↵maruel@chromium.org2009-03-031-1/+1
| | | | | | | | | | | const per style compliance). Preliminary work to enforce new PRESUBMIT.py rules: - <=80 cols - no trailing whitespaces - svn:eol-style=LF git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10791 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a typo in a comment.deanm@chromium.org2009-01-131-1/+1
| | | | | | | Review URL: http://codereview.chromium.org/17630 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7923 0039d316-1c4b-4281-b951-d872f2087c98
* Just by implementing a destructor (even if it's not doing anything), MSVC ↵deanm@google.com2008-09-081-2/+4
| | | | | | | | will register a static initializer as to register the empty destructor. Pretty awesome. Verified that the c++ initializer is no longer in the __xc_a array. Review URL: http://codereview.chromium.org/1812 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1841 0039d316-1c4b-4281-b951-d872f2087c98
* Add a DISALLOW_COPY_AND_ASSIGN to LazyInstanceHelper.deanm@google.com2008-09-081-0/+3
| | | | | | Review URL: http://codereview.chromium.org/1811 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1839 0039d316-1c4b-4281-b951-d872f2087c98
* Create a LazyInstance abstraction for avoiding static constructors by lazily ↵deanm@google.com2008-09-081-0/+105
creating an instance of an object on first access. This is like Singleton, but without the Singleton property of sharing instances. This also preallocates space for the object to avoid the heap to try to help fragmentation and creation performance. Review URL: http://codereview.chromium.org/1608 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1837 0039d316-1c4b-4281-b951-d872f2087c98