gecko-dev/xpcom/base
L. David Baron 24bffb840f Bug 1277709 - Make threadsafe reference counting use the minimum memory sychronization needed. r=froydnj
This uses std::atomic rather than mozilla::Atomic since mozilla::Atomic
does not support using different memory synchronization for different
atomic operations on the same variable.

The added comments could use careful review since, while they reflect my
understanding of the issue, I don't consider myself an expert on the
topic.

MozReview-Commit-ID: 7xByCXt17Dr

--HG--
extra : transplant_source : %8DM%88%E8%B7%B4%D8a%D6%F5%3F%9B%DC%09X%F3%7C%98%DE%21
2017-04-04 20:59:20 -07:00
..
AutoRestore.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
AvailableMemoryTracker.cpp Bug 1301667 - Increase the low memory threshold under Windows and clean up the available memory tracker r=njn 2016-09-14 13:52:45 +02:00
AvailableMemoryTracker.h
ClearOnShutdown.cpp Bug 1237794: Extend ClearOnShutdown() to allow specifying the shutdown phase r=froyd 2016-01-15 13:12:07 -05:00
ClearOnShutdown.h Bug 1237794: Extend ClearOnShutdown() to allow specifying the shutdown phase r=froyd 2016-01-15 13:12:07 -05:00
CodeAddressService.h Bug 1172216 - Move nsStackwalk to mozglue. r=glandium 2015-06-10 16:32:45 -04:00
CountingAllocatorBase.h Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm. 2016-08-24 15:23:45 +10:00
CycleCollectedJSContext.cpp Bug 1346874 - Disable slow gray mark checks on Android, r=mccr8 2017-03-16 15:41:36 -07:00
CycleCollectedJSContext.h Bug 1345177 - Make RegExpShared a GC thing r=sfink 2017-03-27 10:38:29 +01:00
Debug.cpp
Debug.h
DebuggerOnGCRunnable.cpp Bug 1302448 part 1 - Rename CycleCollectedJSRuntime to CycleCollectedJSContext. r=mccr8 2016-09-14 15:47:32 +02:00
DebuggerOnGCRunnable.h Bug 1339289 - Give names to a lot of common runnables (r=ehsan) 2017-02-15 12:30:01 -08:00
DeferredFinalize.cpp Bug 1302448 part 1 - Rename CycleCollectedJSRuntime to CycleCollectedJSContext. r=mccr8 2016-09-14 15:47:32 +02:00
DeferredFinalize.h Bug 1174796 - Make sure ReleaseNow releases everything. r=smaug 2015-06-16 14:19:07 -07:00
EnumeratedArrayCycleCollection.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
ErrorList.h Bug 1343600 - add TLS handshake Start/Stop events. r=:valentin 2017-03-02 03:07:00 +01:00
ErrorNames.cpp Bug 1151541, part 2 - Fix mode lines in xpcom/. r=froydnj 2015-04-09 10:25:05 -07:00
ErrorNames.h Bug 1182996 - Fix and add missing namespace comments. rs=ehsan 2015-07-13 08:25:42 -07:00
HoldDropJSObjects.cpp Bug 1302448 part 1 - Rename CycleCollectedJSRuntime to CycleCollectedJSContext. r=mccr8 2016-09-14 15:47:32 +02:00
HoldDropJSObjects.h Bug 1119482, part 4 - Move IsJSHolder into HoldDropJSObjects. r=smaug 2015-03-10 16:41:38 -07:00
IntentionalCrash.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
JSObjectHolder.cpp Bug 1179924 - Create a more modern JS object holder for cross-thread references to JS objects. r=smaug 2015-07-21 11:31:44 -07:00
JSObjectHolder.h Bug 1179924 - Create a more modern JS object holder for cross-thread references to JS objects. r=smaug 2015-07-21 11:31:44 -07:00
LinuxUtils.cpp
LinuxUtils.h
LogModulePrefWatcher.cpp Bug 1239686 - Add method to set logging file at runtime r=nfroyd 2016-09-19 17:39:47 +02:00
LogModulePrefWatcher.h Bug 1233881 - Support dynamically setting log levels at runtime via prefs. r=froydnj 2015-12-22 15:09:41 -08:00
Logging.cpp Bug 1353143 - Part 6: Remove prlog.h from mozilla/Logging.h. r=froydnj 2017-04-01 10:23:18 -07:00
Logging.h Bug 1353143 - Part 6: Remove prlog.h from mozilla/Logging.h. r=froydnj 2017-04-01 10:23:18 -07:00
MacHelpers.h Bug 1131325 - Move system country code from nsIGfxInfo2 to a more appropriate location. r=aklotz,smichaud 2015-07-28 15:45:34 -07:00
MacHelpers.mm Bug 1310814 - Use public NSLocale API for getting the system country code. r=spohl 2016-10-26 17:56:59 -04:00
MemoryReportingProcess.h Factor ContentParent methods out of nsMemoryReportingManager. (bug 1321492 part 4, r=erahm) 2017-01-26 16:35:54 -08:00
NSPRLogModulesParser.cpp Bug 1320752 - remove mozilla/Function.h; r=gerald 2016-11-28 11:03:53 -05:00
NSPRLogModulesParser.h Bug 1320752 - remove mozilla/Function.h; r=gerald 2016-11-28 11:03:53 -05:00
OwningNonNull.h Bug 1273661 part 2. Add a way to trace a RefPtr<T> or OwningNonNull<T> via a Rooted. r=terrence,smaug 2016-05-18 12:23:35 -04:00
StaticMutex.h Bug 1226376 - Part 2: Annotate StaticMutex with MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS, r=nfroyd 2016-01-08 15:34:24 -05:00
StaticPtr.h Bug 1287623, part 3 - Add more methods involving StaticRefPtr. r=froydnj 2016-07-21 09:54:17 -07:00
SystemMemoryReporter.cpp Bug 1060419 - make AppendPrintf and nsPrintfCString use Printf.h, r=froydnj 2016-12-14 09:32:21 -07:00
SystemMemoryReporter.h
moz.build Bug 1320458 - Make logging by sandboxed child processes to a file work on Windows, r=aklotz 2017-03-06 17:42:31 +01:00
nsAgg.h Bug 1332321. Make all cycle collection participants explicitly say whether they need skippability themselves, or just want whatever skippability their descendants want. r=mccr8 2017-01-24 16:11:56 -05:00
nsAlgorithm.h Bug 1182996 - Fix and add missing namespace comments. rs=ehsan 2015-07-13 08:25:42 -07:00
nsAutoPtr.h Bug 1296189 - Replace NS_RUNTIMEABORT("some string literal message") with MOZ_CRASH(). r=froydnj 2016-12-02 13:46:53 -08:00
nsAutoRef.h Bug 1118486 - Part 1: Use `= delete` instead of MOZ_DELETE directly; r=Waldo 2015-01-08 23:19:05 -05:00
nsCOMPtr.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCOMPtr.h Bug 1331434 - Part 2: Add MOZ_MAY_CALL_AFTER_MUST_RETURN and MOZ_MUST_RETURN_FROM_CALLER annotations, r=ehsan 2017-03-07 19:06:48 -05:00
nsCRTGlue.cpp Bug 1346132 (part 2) - Remove set_stderr_callback(). r=mstange. 2017-03-16 08:17:56 +11:00
nsCRTGlue.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsClassInfoImpl.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCom.h
nsConsoleMessage.cpp
nsConsoleMessage.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsConsoleService.cpp Bug 1323076 - Part 4: ConsoleService with flag checking for TaskTracer. r=erahm 2017-03-22 21:49:00 +01:00
nsConsoleService.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCrashOnException.cpp
nsCrashOnException.h
nsCycleCollectionNoteChild.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollectionNoteRootCallback.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollectionParticipant.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollectionParticipant.h Bug 1332321. Make all cycle collection participants explicitly say whether they need skippability themselves, or just want whatever skippability their descendants want. r=mccr8 2017-01-24 16:11:56 -05:00
nsCycleCollectionTraversalCallback.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollector.cpp Bug 1335751 - Check all gray marking state before cycle collection in debug builds r=mccr8 2017-03-05 09:23:33 +00:00
nsCycleCollector.h Bug 1302448 part 1 - Rename CycleCollectedJSRuntime to CycleCollectedJSContext. r=mccr8 2016-09-14 15:47:32 +02:00
nsCycleCollectorTraceJSHelpers.cpp Bug 1326507, trace after traverse, r=mccr8 2017-01-03 21:46:49 +02:00
nsDebug.h Bug 1346132 (part 2) - Remove set_stderr_callback(). r=mstange. 2017-03-16 08:17:56 +11:00
nsDebugImpl.cpp bug 1300152 - Add nsIDebug2::rustPanic to allow triggering Rust panic for testing. r=froydnj 2017-03-31 12:08:57 -04:00
nsDebugImpl.h Bug 1163916 (part 1) - Avoid a static nsDebugImpl constructor. r=froydnj. 2015-05-13 16:47:55 -07:00
nsDumpUtils.cpp Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj 2016-08-24 14:47:04 +08:00
nsDumpUtils.h Bug 1268313: Part 7 - Move NS_NewRunnableMethod and friends to mozilla::NewRunnableMethod. r=froydnj 2016-05-05 01:45:00 -07:00
nsError.h Bug 1339540 part 1. Introduce an ErrorResult-specific nsresult module. r=smaug 2017-02-15 00:01:57 -05:00
nsErrorService.cpp Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat 2015-10-18 01:24:48 -04:00
nsErrorService.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsGZFileWriter.cpp Bug 1296164 (part 2) - Use [must_use] on nsIFile.open{NSPR,ANSI}FileDesc(). r=froydnj. 2016-08-18 15:27:16 +10:00
nsGZFileWriter.h Bug 1295825 (part 3) - Use [must_use] and MOZ_MUST_USE in nsIGZFileWriter.idl. r=froydnj. 2016-08-17 17:09:45 +10:00
nsIClassInfoImpl.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIConsoleListener.idl
nsIConsoleMessage.idl
nsIConsoleService.idl Bug 1152574: Fix console service discarding to run when it is actually safe to do so (off of inner-window-destroyed). Also add a backstop at xpcom-shutdown to discard any cycle collected messages before it is too late. r=froydnj 2015-07-31 06:49:27 -07:00
nsICycleCollectorListener.idl Bug 1163006, part 4 - De-COM the nsICycleCollectorListener methods we only call from C++. r=smaug 2015-06-04 14:41:31 -07:00
nsID.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsID.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIDebug2.idl bug 1300152 - Add nsIDebug2::rustPanic to allow triggering Rust panic for testing. r=froydnj 2017-03-31 12:08:57 -04:00
nsIErrorService.idl
nsIException.idl Bug 1257919 part 10. Make the caller and formattedStack getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:35 -04:00
nsIGZFileWriter.idl Bug 1295825 (part 3) - Use [must_use] and MOZ_MUST_USE in nsIGZFileWriter.idl. r=froydnj. 2016-08-17 17:09:45 +10:00
nsIID.h
nsIInterfaceRequestor.idl
nsIInterfaceRequestorUtils.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIInterfaceRequestorUtils.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIMacUtils.idl
nsIMemory.idl Bug 1253142 - Remove the long-deprecated nsIMemory.isLowMemory function. r=froydnj. 2016-03-06 21:07:51 +11:00
nsIMemoryInfoDumper.idl
nsIMemoryReporter.idl Bug 1310973 - Fixing a comment in nsIMemoryReporter.idl, r=me 2016-10-18 12:37:23 +02:00
nsIMessageLoop.idl Bug 1268160: Assert that PostIdleTask is only used on the main thread. r=jld 2016-05-12 15:15:43 -07:00
nsIMutable.idl
nsINIParser.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsINIParser.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIProgrammingLanguage.idl Bug 1150917 - Remove all values from nsIProgrammingLanguage except UNKNOWN and JAVASCRIPT. r=froydnj 2015-04-08 17:16:30 -07:00
nsISecurityConsoleMessage.idl
nsISizeOf.h
nsIStatusReporter.idl Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
nsISupports.idl
nsISupportsBase.h
nsISupportsImpl.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsISupportsImpl.h Bug 1277709 - Make threadsafe reference counting use the minimum memory sychronization needed. r=froydnj 2017-04-04 20:59:20 -07:00
nsISupportsUtils.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIUUIDGenerator.idl
nsIVersionComparator.idl
nsIWeakReference.idl
nsIWeakReferenceUtils.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsInterfaceRequestorAgg.cpp Bug 1164581 - Adding an overload for NS_ProxyRelease that accepts already_AddRefed, and removing all the others. r=bobbyholley 2016-02-10 08:23:00 +01:00
nsInterfaceRequestorAgg.h
nsMacUtilsImpl.cpp Bug 1191100 - Remove XPIDL signature comments in .cpp files. r=ehsan 2015-08-04 16:17:36 -07:00
nsMacUtilsImpl.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsMemory.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsMemory.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsMemoryImpl.cpp Bug 1277106 - Part 2: Expand MOZ_UTF16() strings to u"" string literals. r=Waldo 2016-07-20 22:03:25 -07:00
nsMemoryImpl.h Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj 2016-07-08 14:39:53 -07:00
nsMemoryInfoDumper.cpp Bug 1299384 - Use MOZ_MUST_USE with NS_warn_if_impl(). r=erahm. 2016-09-02 17:12:24 +10:00
nsMemoryInfoDumper.h Bug 1156632 - Remove unused forward class declarations - patch 6 - the rest of the tree, r=ehsan 2015-04-22 08:29:24 +02:00
nsMemoryReporterManager.cpp Bug 816598 - Add a memory reporter for the Gecko Profiler. r=mstange,jseward. 2017-01-30 12:37:26 +11:00
nsMemoryReporterManager.h Factor ContentParent methods out of nsMemoryReportingManager. (bug 1321492 part 4, r=erahm) 2017-01-26 16:35:54 -08:00
nsMessageLoop.cpp Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm. 2016-09-01 15:01:16 +10:00
nsMessageLoop.h
nsObjCExceptions.h Bug 1293541 - Clean up NS_OBJC_*_TRY_* macros. r=mstange. 2016-08-09 14:27:59 +10:00
nsQueryObject.h Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat 2015-10-18 01:24:48 -04:00
nsSecurityConsoleMessage.cpp
nsSecurityConsoleMessage.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsSetDllDirectory.h
nsStatusReporterManager.cpp Bug 1305037 - simplify the getpid usage r=alchen 2016-09-23 15:02:23 +02:00
nsStatusReporterManager.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsSystemInfo.cpp Bug 1350690 - Add main thread assertion to nsSystemInfo::Init(). r=froydnj 2017-03-27 08:03:01 -07:00
nsSystemInfo.h Backed out changeset 8d3ff1d1a809 (bug 1220344) for failing android tests 2015-11-05 11:48:06 +01:00
nsTWeakRef.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsTraceRefcnt.cpp Bug 1322735 - Remove MOZ_STACKWALKING define. r=glandium 2016-12-20 15:11:36 -08:00
nsTraceRefcnt.h Bug 1308995, part 2 - Remove nsTraceRefcnt::StatisticsType arguments. r=froydnj 2016-10-10 10:56:09 -07:00
nsUUIDGenerator.cpp Bug 1134923 - Remove NS_Alloc/NS_Realloc/NS_Free. r=nfroyd 2015-05-01 09:40:30 +09:00
nsUUIDGenerator.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsVersionComparator.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsVersionComparator.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsVersionComparatorImpl.cpp
nsVersionComparatorImpl.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
nsWeakPtr.h
nsWeakReference.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsWeakReference.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsWindowsHelpers.h Bug 1322465 part 15 - Use explicit/MOZ_IMPLICIT for the unary constructors in xpcom/. r=bobowen,Ehsan 2016-12-16 16:01:11 +08:00
nscore.h Bug 1346078: Remove nsAString_internal and just use the nsAString name directly. r=bsmedberg 2017-03-10 15:17:23 +13:00
nsrootidl.idl