Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -1,17 +0,0 @@
2008-04-23 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
* AssemblyInfo.cs: Added missing attributes
2006-10-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* AssemblyInfo.cs: use the ecma key for this assembly. Patch by Patrick
Earl.
2005-11-05 Kornél Pál <kornelpal@hotmail.com>
* AssemblyInfo.cs: Use Consts.FxVersion as AssemblyVersion and
SatelliteContractVersion.
2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
* AssemblyInfo.cs : new file.

View File

@@ -1,13 +0,0 @@
2009-10-14 Jonathan Pryor <jpryor@novell.com>
* Makefile (VALID_PROFILE): Add monotouch.
2006-03-03 Ankit Jain <jankit@novell.com>
* System.Transactions_test.dll.sources: New.
* Test: New directory.
2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
* Makefile, System.Transactions.dll.sources : new files.

View File

@@ -5,10 +5,10 @@ include ../../build/rules.make
LIBRARY = System.Transactions.dll
ifdef MOBILE_PROFILE
LIB_REFS = System
LIB_MCS_FLAGS = /r:$(corlib) /define:MOBILE
LIB_MCS_FLAGS = /define:MOBILE
else
LIB_REFS = System System.Configuration
LIB_MCS_FLAGS = /r:$(corlib)
LIB_MCS_FLAGS =
endif
TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)

View File

@@ -31,6 +31,7 @@ System.Transactions/TransactionManagerCommunicationException.cs
System.Transactions/TransactionOptions.cs
System.Transactions/TransactionPromotionException.cs
System.Transactions/TransactionScope.cs
System.Transactions/TransactionScopeAsyncFlowOption.cs
System.Transactions/TransactionScopeOption.cs
System.Transactions/TransactionStatus.cs
System.Transactions/Configuration/DefaultSettingsSection.cs

View File

@@ -1,74 +0,0 @@
2010-01-03 Zoltan Varga <vargaz@gmail.com>
* TransactionAbortedException.cs: Make the default ctor public. Fixes #567872.
2009-02-02 Raja R Harinath <harinath@hurrynot.org>
Fix #463999
* CommittableTransaction.cs (CommitCallback): Handle the case
where the callback is invoked before BeginCommit ends due to the
async call ending synchronously.
2007-08-13 Miguel de Icaza <miguel@novell.com>
* Transaction.cs: Remove the exception throwing on Dispose, from
bug report #82423.
2007-02-12 Robert Jordan <robertj@gmx.net>
* Transaction.cs: Transaction.Current must be thread-local.
Fixes bug #80343.
2006-11-29 Ankit Jain <jankit@novell.com>
* DependentTransaction.cs:
* TransactionScope.cs:
* Enlist.cs:
* TransactionManager.cs:
* Transaction.cs:
* SinglePhaseEnlistment.cs:
* CommittableTransaction.cs:
Remove bogus MonoTODOs. Add meaninful messages to MonoTODOs.
2006-11-20 Raja R Harinath <rharinath@novell.com>
* Transaction.cs (operator==, operator!=): Implement.
Reported by "Matthijs ter Woord" <matthijsterwoord@gmail.com>.
2006-08-09 Duncan Mak <duncan@novell.com>
* IPromotableSinglePhaseNotification.cs (Promote): Removed because
it now extends from ITransactionPromoter. Fixes #79037.
2006-04-07 Mike Kestner <mkestner@novell.com>
* IdcTransaction.cs: comment out the ComVisible attr to fix build.
2006-03-03 Ankit Jain <jankit@novell.com>
* Initial implementation.
Implements support for a LTM (Lightweight Transaction Manager).
Distributed transactions are not supported with this.
Following are known as not implemented yet:
DependentTransaction, IsolationLevels and
EnlistmentOption.EnlistDuringPrepareRequired.
2005-09-22 Atsushi Enomoto <atsushi@ximian.com>
* CommittableTransaction.cs, Delegates.cs, DependentCloneOption.cs,
DependentTransaction.cs, Enlistment.cs, EnlistmentOptions.cs,
EnterpriseServicesInteropOption.cs, IDtcTransaction.cs,
IEnlistmentNotification.cs, IPromotableSinglePhaseNotification.cs,
ISimpleTransactionSuperior.cs, ISinglePhaseNotification.cs,
ITransactionPromoter.cs, IsolationLevel.cs, PreparingEnlistment.cs,
SinglePhaseEnlistment.cs, SubordinateTransaction.cs,
Transaction.cs, TransactionAbortedException.cs,
TransactionEventArgs.cs, TransactionException.cs,
TransactionInDoubtException.cs, TransactionInformation.cs,
TransactionInterop.cs, TransactionManager.cs,
TransactionManagerCommunicationException.cs,
TransactionOptions.cs, TransactionPromotionException.cs,
TransactionScope.cs, TransactionScopeOption.cs,
TransactionStatus.cs :
new files (almost all files are stub).

View File

@@ -31,12 +31,20 @@ namespace System.Transactions
bool completed;
bool isRoot;
bool asyncFlowEnabled;
public TransactionScope ()
: this (TransactionScopeOption.Required,
TransactionManager.DefaultTimeout)
{
}
public TransactionScope(TransactionScopeAsyncFlowOption asyncFlow)
: this(TransactionScopeOption.Required,
TransactionManager.DefaultTimeout, asyncFlow)
{
}
public TransactionScope (Transaction transaction)
: this (transaction, TransactionManager.DefaultTimeout)
{
@@ -53,7 +61,7 @@ namespace System.Transactions
TimeSpan timeout, DTCOption opt)
{
Initialize (TransactionScopeOption.Required,
transaction, defaultOptions, opt, timeout);
transaction, defaultOptions, opt, timeout, TransactionScopeAsyncFlowOption.Suppress);
}
public TransactionScope (TransactionScopeOption option)
@@ -62,10 +70,21 @@ namespace System.Transactions
}
public TransactionScope (TransactionScopeOption option,
TimeSpan timeout)
TimeSpan timeout)
: this (option, timeout, TransactionScopeAsyncFlowOption.Suppress)
{
}
public TransactionScope(TransactionScopeOption option, TransactionScopeAsyncFlowOption asyncFlow)
: this(option, TransactionManager.DefaultTimeout, asyncFlow)
{
}
public TransactionScope (TransactionScopeOption option,
TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow)
{
Initialize (option, null, defaultOptions,
DTCOption.None, timeout);
DTCOption.None, timeout, asyncFlow);
}
public TransactionScope (TransactionScopeOption scopeOption,
@@ -80,16 +99,17 @@ namespace System.Transactions
DTCOption opt)
{
Initialize (scopeOption, null, options, opt,
TransactionManager.DefaultTimeout);
TransactionManager.DefaultTimeout, TransactionScopeAsyncFlowOption.Suppress);
}
void Initialize (TransactionScopeOption scopeOption,
Transaction tx, TransactionOptions options,
DTCOption interop, TimeSpan timeout)
DTCOption interop, TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow)
{
completed = false;
isRoot = false;
nested = 0;
asyncFlowEnabled = asyncFlow == TransactionScopeAsyncFlowOption.Enabled;
if (timeout < TimeSpan.Zero)
throw new ArgumentOutOfRangeException ("timeout");
@@ -165,36 +185,67 @@ namespace System.Transactions
throw new InvalidOperationException ("TransactionScope nested incorrectly");
}
if (Transaction.CurrentInternal != transaction) {
if (Transaction.CurrentInternal != transaction && !asyncFlowEnabled) {
if (transaction != null)
transaction.Rollback ();
if (Transaction.CurrentInternal != null)
Transaction.CurrentInternal.Rollback ();
throw new InvalidOperationException ("Transaction.Current has changed inside of the TransactionScope");
}
if (asyncFlowEnabled) {
if (oldTransaction != null)
oldTransaction.Scope = parentScope;
var variedTransaction = Transaction.CurrentInternal;
if (transaction == null && variedTransaction == null)
/* scope was not in a transaction, (Suppress) */
return;
variedTransaction.Scope = parentScope;
Transaction.CurrentInternal = oldTransaction;
transaction.Scope = null;
if (!IsComplete) {
transaction.Rollback ();
variedTransaction.Rollback();
return;
}
if (!isRoot)
/* Non-root scope has completed+ended */
return;
variedTransaction.CommitInternal();
transaction.CommitInternal();
} else {
if (Transaction.CurrentInternal == oldTransaction && oldTransaction != null)
oldTransaction.Scope = parentScope;
Transaction.CurrentInternal = oldTransaction;
if (transaction == null)
/* scope was not in a transaction, (Suppress) */
return;
transaction.Scope = null;
if (!IsComplete)
{
transaction.Rollback();
return;
}
if (!isRoot)
/* Non-root scope has completed+ended */
return;
transaction.CommitInternal();
}
if (Transaction.CurrentInternal == oldTransaction && oldTransaction != null)
oldTransaction.Scope = parentScope;
Transaction.CurrentInternal = oldTransaction;
if (transaction == null)
/* scope was not in a transaction, (Suppress) */
return;
transaction.Scope = null;
if (!IsComplete) {
transaction.Rollback ();
return;
}
if (!isRoot)
/* Non-root scope has completed+ended */
return;
transaction.CommitInternal ();
}

View File

@@ -0,0 +1,9 @@

namespace System.Transactions
{
public enum TransactionScopeAsyncFlowOption
{
Suppress,
Enabled
}
}

View File

@@ -1,15 +0,0 @@
2009-01-07 Zoltan Varga <vargaz@gmail.com>
* AsyncTest.cs: Disable these tests, they fail randomly (bug #463999).
2007-08-14 Ankit Jain <jankit@novell.com>
* EnlistTest.cs: Add tests for bug #82423.
2006-03-03 Ankit Jain <jankit@novell.com>
* AsyncTest.cs:
* TransactionScopeTest.cs:
* EnlistTest.cs: Initial set of test cases.