Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
FinalizedObject.cs
Go to the documentation of this file.
2
3namespace System.Transactions;
4
5internal sealed class FinalizedObject : IDisposable
6{
7 private readonly Guid _identifier;
8
10
11 internal FinalizedObject(InternalTransaction internalTransaction, Guid identifier)
12 {
13 _internalTransaction = internalTransaction;
14 _identifier = identifier;
15 }
16
17 private void Dispose(bool disposing)
18 {
19 if (disposing)
20 {
21 GC.SuppressFinalize(this);
22 }
23 Hashtable promotedTransactionTable = TransactionManager.PromotedTransactionTable;
24 lock (promotedTransactionTable)
25 {
26 WeakReference weakReference = (WeakReference)promotedTransactionTable[_identifier];
27 if (weakReference != null && weakReference.Target != null)
28 {
29 weakReference.Target = null;
30 }
31 promotedTransactionTable.Remove(_identifier);
32 }
33 }
34
35 public void Dispose()
36 {
37 Dispose(disposing: true);
38 }
39
41 {
42 Dispose(disposing: false);
43 }
44}
virtual void Remove(object key)
static void SuppressFinalize(object obj)
Definition GC.cs:202
Definition GC.cs:8
FinalizedObject(InternalTransaction internalTransaction, Guid identifier)
readonly InternalTransaction _internalTransaction
virtual ? object Target