aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-08-16 23:05:08 +0100
committerJustin Clark-Casey (justincc)2011-08-16 23:05:08 +0100
commit57e54d84d641787d40a2b45549f6f2d373c5f2f2 (patch)
tree2a9dfca1ecde4281a59ec682d833c1007ccafbd2 /OpenSim/Framework
parentMove some previously common code back into separate tests. Remove unused reg... (diff)
downloadopensim-SC-57e54d84d641787d40a2b45549f6f2d373c5f2f2.zip
opensim-SC-57e54d84d641787d40a2b45549f6f2d373c5f2f2.tar.gz
opensim-SC-57e54d84d641787d40a2b45549f6f2d373c5f2f2.tar.bz2
opensim-SC-57e54d84d641787d40a2b45549f6f2d373c5f2f2.tar.xz
Add new FireAndForgetMethod.None.
This executes the callback on the same thread that made the request. Designed for use only by regression tests that rely on a predicable event ordering.
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/AvatarAppearance.cs12
-rw-r--r--OpenSim/Framework/Util.cs11
2 files changed, 20 insertions, 3 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 02af5d9..ab4ed66 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -412,12 +412,20 @@ namespace OpenSim.Framework
412 } 412 }
413 413
414 /// <summary> 414 /// <summary>
415 /// Add an attachment, if the attachpoint has the 415 /// Add an attachment
416 /// </summary>
417 /// <remarks>
418 /// If the attachpoint has the
416 /// 0x80 bit set then we assume this is an append 419 /// 0x80 bit set then we assume this is an append
417 /// operation otherwise we replace whatever is 420 /// operation otherwise we replace whatever is
418 /// currently attached at the attachpoint 421 /// currently attached at the attachpoint
422 /// </remarks>
423 /// <param name="attachpoint"></param>
424 /// <param name="item">If UUID.Zero, then an any attachment at the attachpoint is removed.</param>
425 /// <param name="asset"></param>
426 /// <returns>
419 /// return true if something actually changed 427 /// return true if something actually changed
420 /// </summary> 428 /// </returns>
421 public bool SetAttachment(int attachpoint, UUID item, UUID asset) 429 public bool SetAttachment(int attachpoint, UUID item, UUID asset)
422 { 430 {
423 if (attachpoint == 0) 431 if (attachpoint == 0)
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 984a7a8..51ced7b 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -56,8 +56,13 @@ namespace OpenSim.Framework
56 /// <summary> 56 /// <summary>
57 /// The method used by Util.FireAndForget for asynchronously firing events 57 /// The method used by Util.FireAndForget for asynchronously firing events
58 /// </summary> 58 /// </summary>
59 /// <remarks>
60 /// None is used to execute the method in the same thread that made the call. It should only be used by regression
61 /// test code that relies on predictable event ordering.
62 /// </remarks>
59 public enum FireAndForgetMethod 63 public enum FireAndForgetMethod
60 { 64 {
65 None,
61 UnsafeQueueUserWorkItem, 66 UnsafeQueueUserWorkItem,
62 QueueUserWorkItem, 67 QueueUserWorkItem,
63 BeginInvoke, 68 BeginInvoke,
@@ -89,7 +94,8 @@ namespace OpenSim.Framework
89 public static readonly Regex UUIDPattern 94 public static readonly Regex UUIDPattern
90 = new Regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"); 95 = new Regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$");
91 96
92 public static FireAndForgetMethod FireAndForgetMethod = FireAndForgetMethod.SmartThreadPool; 97 public static FireAndForgetMethod DefaultFireAndForgetMethod = FireAndForgetMethod.SmartThreadPool;
98 public static FireAndForgetMethod FireAndForgetMethod = DefaultFireAndForgetMethod;
93 99
94 /// <summary> 100 /// <summary>
95 /// Gets the name of the directory where the current running executable 101 /// Gets the name of the directory where the current running executable
@@ -1506,6 +1512,9 @@ namespace OpenSim.Framework
1506 1512
1507 switch (FireAndForgetMethod) 1513 switch (FireAndForgetMethod)
1508 { 1514 {
1515 case FireAndForgetMethod.None:
1516 realCallback.Invoke(obj);
1517 break;
1509 case FireAndForgetMethod.UnsafeQueueUserWorkItem: 1518 case FireAndForgetMethod.UnsafeQueueUserWorkItem:
1510 ThreadPool.UnsafeQueueUserWorkItem(realCallback, obj); 1519 ThreadPool.UnsafeQueueUserWorkItem(realCallback, obj);
1511 break; 1520 break;