Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
//
// AssemblyInfo.cs
//
// Author:
// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
// (C) 2004 Novell (http://www.novell.com)
//
using System;
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyVersion (Consts.FxVersion)]
[assembly: AssemblyDelaySign (true)]
[assembly: AssemblyKeyFile ("../mono.pub")]

View File

@@ -0,0 +1,342 @@
<Type Name="ConcurrentOrderedList&lt;T&gt;" FullName="Mono.Collections.Concurrent.ConcurrentOrderedList&lt;T&gt;">
<TypeSignature Language="C#" Value="public class ConcurrentOrderedList&lt;T&gt; : System.Collections.Generic.ICollection&lt;T&gt;, System.Collections.Generic.IEnumerable&lt;T&gt;" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ConcurrentOrderedList`1&lt;T&gt; extends System.Object implements class System.Collections.Generic.ICollection`1&lt;!T&gt;, class System.Collections.Generic.IEnumerable`1&lt;!T&gt;, class System.Collections.IEnumerable" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeParameters>
<TypeParameter Name="T" />
</TypeParameters>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.Generic.ICollection&lt;T&gt;</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Collections.Generic.IEnumerable&lt;T&gt;</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<typeparam name="T">The type of elements in the list.</typeparam>
<summary>Provide a concurrent thread-safe implementation of a linked-list that keeps elements in order.</summary>
<remarks>This collection doesn't support duplicate elements with the same hash.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public ConcurrentOrderedList ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initialize a new instance of ConcurrentOrderedList that is empty and use a default equality comparer.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public ConcurrentOrderedList (System.Collections.Generic.IEqualityComparer&lt;T&gt; comparer);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Collections.Generic.IEqualityComparer`1&lt;!T&gt; comparer) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;T&gt;" />
</Parameters>
<Docs>
<param name="comparer">Comparer used to determine elements hash and equality.</param>
<summary>Initialize a new instance of ConcurrentOrderedList that is empty and use a provided equality comparer.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="Clear">
<MemberSignature Language="C#" Value="public void Clear ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Clear() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Comparer">
<MemberSignature Language="C#" Value="public System.Collections.Generic.IEqualityComparer&lt;T&gt; Comparer { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Collections.Generic.IEqualityComparer`1&lt;!T&gt; Comparer" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEqualityComparer&lt;T&gt;</ReturnType>
</ReturnValue>
<Docs>
<summary>Returns the comparer used in this instance of ConcurrentOrderedList.</summary>
<value>Comparer currently used.</value>
<remarks />
</Docs>
</Member>
<Member MemberName="Contains">
<MemberSignature Language="C#" Value="public bool Contains (T data);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Contains(!T data) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="T" />
</Parameters>
<Docs>
<param name="data">The data to locate in the list.</param>
<summary>Checks if the supplied element is in the ConcurrentOrderedList.</summary>
<returns>
<see langword="true" /> if the item is found, <see langword="false" /> otherwise.</returns>
<remarks />
</Docs>
</Member>
<Member MemberName="ContainsHash">
<MemberSignature Language="C#" Value="public bool ContainsHash (int key);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ContainsHash(int32 key) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="key" Type="System.Int32" />
</Parameters>
<Docs>
<param name="key">Hash value to check.</param>
<summary>Checks if the supplied hash corresponds to an element in the ConcurrentOrderedList.</summary>
<returns>
<see langword="true" /> if an item corresponding to the given hash is found, <see langword="false" /> otherwise.</returns>
<remarks>A call to <see cref="M:ConcurrentOrderedList&lt;T&gt;.Contains()" /> is equivalent to calling this method using the <see cref="T:System.Collections.Generic.IEqualityComparer&lt;T&gt;.GetHashCode(T)" /> method with <see cref="P:ConcurrentOrderedList&lt;T&gt;.Comparer" />.</remarks>
</Docs>
</Member>
<Member MemberName="CopyTo">
<MemberSignature Language="C#" Value="public void CopyTo (T[] array, int startIndex);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(!T[] array, int32 startIndex) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="array" Type="T[]" />
<Parameter Name="startIndex" Type="System.Int32" />
</Parameters>
<Docs>
<param name="array">To be added.</param>
<param name="startIndex">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Count">
<MemberSignature Language="C#" Value="public int Count { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Count" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.ICollection&lt;T&gt;.Add">
<MemberSignature Language="C#" Value="void ICollection&lt;T&gt;.Add (T item);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.Generic.ICollection&lt;T&gt;.Add(!T item) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="T" />
</Parameters>
<Docs>
<param name="item">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly">
<MemberSignature Language="C#" Value="bool System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.ICollection&lt;T&gt;.Remove">
<MemberSignature Language="C#" Value="bool ICollection&lt;T&gt;.Remove (T item);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool System.Collections.Generic.ICollection&lt;T&gt;.Remove(!T item) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="T" />
</Parameters>
<Docs>
<param name="item">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator">
<MemberSignature Language="C#" Value="System.Collections.Generic.IEnumerator&lt;T&gt; IEnumerable&lt;T&gt;.GetEnumerator ();" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1&lt;!T&gt; System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerator&lt;T&gt;</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.IEnumerable.GetEnumerator">
<MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.IEnumerator</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryAdd">
<MemberSignature Language="C#" Value="public bool TryAdd (T data);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryAdd(!T data) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="T" />
</Parameters>
<Docs>
<param name="data">Data to add in the collection.</param>
<summary>Try to add an element to the collection.</summary>
<returns>True if the insertion was successful, <see langword="false" /> otherwise.</returns>
<remarks>This method add the supplied element only if there is no other element with an identical hash already in the list.</remarks>
</Docs>
</Member>
<Member MemberName="TryGetFromHash">
<MemberSignature Language="C#" Value="public bool TryGetFromHash (int key, out T data);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryGetFromHash(int32 key, !T data) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="key" Type="System.Int32" />
<Parameter Name="data" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="key">To be added.</param>
<param name="data">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryRemove">
<MemberSignature Language="C#" Value="public bool TryRemove (T data);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryRemove(!T data) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="T" />
</Parameters>
<Docs>
<param name="data">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryRemoveHash">
<MemberSignature Language="C#" Value="public bool TryRemoveHash (int key, out T data);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryRemoveHash(int32 key, !T data) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="key" Type="System.Int32" />
<Parameter Name="data" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="key">To be added.</param>
<param name="data">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,302 @@
<Type Name="ConcurrentSkipList&lt;T&gt;" FullName="Mono.Collections.Concurrent.ConcurrentSkipList&lt;T&gt;">
<TypeSignature Language="C#" Value="public class ConcurrentSkipList&lt;T&gt; : System.Collections.Generic.ICollection&lt;T&gt;, System.Collections.Generic.IEnumerable&lt;T&gt;" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ConcurrentSkipList`1&lt;T&gt; extends System.Object implements class System.Collections.Generic.ICollection`1&lt;!T&gt;, class System.Collections.Generic.IEnumerable`1&lt;!T&gt;, class System.Collections.IEnumerable" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeParameters>
<TypeParameter Name="T" />
</TypeParameters>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.Generic.ICollection&lt;T&gt;</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Collections.Generic.IEnumerable&lt;T&gt;</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<typeparam name="T">To be added.</typeparam>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public ConcurrentSkipList ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initialize a new instance of ConcurrentSkipList that is empty and use a default equality comparer.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public ConcurrentSkipList (System.Collections.Generic.IEqualityComparer&lt;T&gt; comparer);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Collections.Generic.IEqualityComparer`1&lt;!T&gt; comparer) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="comparer" Type="System.Collections.Generic.IEqualityComparer&lt;T&gt;" />
</Parameters>
<Docs>
<param name="comparer">Comparer used to determine elements hash and equality.</param>
<summary>Initialize a new instance of ConcurrentOrderedList that is empty and use a provided equality comparer.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Clear">
<MemberSignature Language="C#" Value="public void Clear ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Clear() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Remove all elements in the collection.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Contains">
<MemberSignature Language="C#" Value="public bool Contains (T value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Contains(!T value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="T" />
</Parameters>
<Docs>
<param name="value">To be added.</param>
<summary>Test if an element is in the collection</summary>
<returns>
<see langword="true" /> if the element supplied was found, <see langword="false" /> otherwise</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ContainsHash">
<MemberSignature Language="C#" Value="public bool ContainsHash (int hash);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ContainsHash(int32 hash) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="hash" Type="System.Int32" />
</Parameters>
<Docs>
<param name="hash">Hash value to check.</param>
<summary>Checks if the supplied hash corresponds to an element in the ConcurrentOrderedList.</summary>
<returns>
<see langword="true" /> if an item corresponding to the given hash is found, <see langword="false" /> otherwise.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="CopyTo">
<MemberSignature Language="C#" Value="public void CopyTo (T[] array, int startIndex);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(!T[] array, int32 startIndex) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="array" Type="T[]" />
<Parameter Name="startIndex" Type="System.Int32" />
</Parameters>
<Docs>
<param name="array">To be added.</param>
<param name="startIndex">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Count">
<MemberSignature Language="C#" Value="public int Count { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Count" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Remove">
<MemberSignature Language="C#" Value="public bool Remove (T value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Remove(!T value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="T" />
</Parameters>
<Docs>
<param name="value">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.ICollection&lt;T&gt;.Add">
<MemberSignature Language="C#" Value="void ICollection&lt;T&gt;.Add (T item);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.Generic.ICollection&lt;T&gt;.Add(!T item) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="T" />
</Parameters>
<Docs>
<param name="item">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly">
<MemberSignature Language="C#" Value="bool System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator">
<MemberSignature Language="C#" Value="System.Collections.Generic.IEnumerator&lt;T&gt; IEnumerable&lt;T&gt;.GetEnumerator ();" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1&lt;!T&gt; System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerator&lt;T&gt;</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="System.Collections.IEnumerable.GetEnumerator">
<MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.IEnumerator</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ToArray">
<MemberSignature Language="C#" Value="public T[] ToArray ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance !T[] ToArray() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>T[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryAdd">
<MemberSignature Language="C#" Value="public bool TryAdd (T value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryAdd(!T value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="T" />
</Parameters>
<Docs>
<param name="value">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryGetFromHash">
<MemberSignature Language="C#" Value="public bool TryGetFromHash (int hash, out T value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryGetFromHash(int32 hash, !T value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="hash" Type="System.Int32" />
<Parameter Name="value" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="hash">Hash value to check.</param>
<param name="value">Will be set to the element corresponding to the provided hash if it was found.</param>
<summary>Check if an element with the provided hash exists in the list and provide it.</summary>
<returns>
<see langword="true" /> if an element with the provided hash was found and if value point to it, <see langword="false" /> otherwise.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,115 @@
<Type Name="CyclicDeque&lt;T&gt;" FullName="Mono.Threading.Tasks.CyclicDeque&lt;T&gt;">
<TypeSignature Language="C#" Value="public class CyclicDeque&lt;T&gt; : Mono.Threading.Tasks.IConcurrentDeque&lt;T&gt;" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CyclicDeque`1&lt;T&gt; extends System.Object implements class Mono.Threading.Tasks.IConcurrentDeque`1&lt;!T&gt;" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeParameters>
<TypeParameter Name="T" />
</TypeParameters>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>Mono.Threading.Tasks.IConcurrentDeque&lt;T&gt;</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<typeparam name="T">To be added.</typeparam>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CyclicDeque ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetEnumerable">
<MemberSignature Language="C#" Value="public System.Collections.Generic.IEnumerable&lt;T&gt; GetEnumerable ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1&lt;!T&gt; GetEnumerable() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable&lt;T&gt;</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PopBottom">
<MemberSignature Language="C#" Value="public Mono.Threading.Tasks.PopResult PopBottom (out T obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Mono.Threading.Tasks.PopResult PopBottom(!T obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="obj">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PopTop">
<MemberSignature Language="C#" Value="public Mono.Threading.Tasks.PopResult PopTop (out T obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Mono.Threading.Tasks.PopResult PopTop(!T obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="obj">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PushBottom">
<MemberSignature Language="C#" Value="public void PushBottom (T obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void PushBottom(!T obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="T" />
</Parameters>
<Docs>
<param name="obj">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,95 @@
<Type Name="IConcurrentDeque&lt;T&gt;" FullName="Mono.Threading.Tasks.IConcurrentDeque&lt;T&gt;">
<TypeSignature Language="C#" Value="public interface IConcurrentDeque&lt;T&gt;" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IConcurrentDeque`1&lt;T&gt;" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeParameters>
<TypeParameter Name="T" />
</TypeParameters>
<Interfaces />
<Docs>
<typeparam name="T">To be added.</typeparam>
<summary>Define a common interface for ABP-type deque data structure used in work-stealing algorithm.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName="GetEnumerable">
<MemberSignature Language="C#" Value="public System.Collections.Generic.IEnumerable&lt;T&gt; GetEnumerable ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1&lt;!T&gt; GetEnumerable() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable&lt;T&gt;</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns an <see cref="T:System.Collections.Generic.IEnumerable&lt;T&gt;" /> equivalent of the deque to allow enumeration. </summary>
<returns>An <see cref="T:System.Collections.Generic.IEnumerable&lt;T&gt;" /> representation of the elements in the deque (can be the object itself). </returns>
<remarks>Implementation can return <see langword="null" /> if the operation is not supported.</remarks>
</Docs>
</Member>
<Member MemberName="PopBottom">
<MemberSignature Language="C#" Value="public Mono.Threading.Tasks.PopResult PopBottom (out T obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Mono.Threading.Tasks.PopResult PopBottom(!T obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="obj">To be added.</param>
<summary>Retrieve an element from one end of the deque.</summary>
<returns>The result of the operation.</returns>
<remarks>The implementation of this method is NOT supposed to be thread-safe.</remarks>
</Docs>
</Member>
<Member MemberName="PopTop">
<MemberSignature Language="C#" Value="public Mono.Threading.Tasks.PopResult PopTop (out T obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Mono.Threading.Tasks.PopResult PopTop(!T obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="T&amp;" RefType="out" />
</Parameters>
<Docs>
<param name="obj">The eventually retrieved object.</param>
<summary>Retrieve an element from the other end of the deque.</summary>
<returns>Result of the operation.</returns>
<remarks>The implementation of this method is supposed thread-safe.</remarks>
</Docs>
</Member>
<Member MemberName="PushBottom">
<MemberSignature Language="C#" Value="public void PushBottom (T obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void PushBottom(!T obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="T" />
</Parameters>
<Docs>
<param name="obj">To be added.</param>
<summary>Push an element at one end of the deque.</summary>
<remarks>The implementation of this method is NOT supposed to be thread-safe.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,68 @@
<Type Name="IMonoTaskScheduler" FullName="Mono.Threading.Tasks.IMonoTaskScheduler">
<TypeSignature Language="C#" Value="public interface IMonoTaskScheduler" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IMonoTaskScheduler" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Docs>
<summary>The normal way to use another scheduler with ParalleFx is by creating a new type subclassing <see cref="T:System.Threading.Tasks.TaskScheduler" />. However Mono's ParallelFx has a few specifities which aren't captured by the base API. Developpers can thus also implement this interface with their custom scheduler for better Mono integration.</summary>
<remarks>The changes added by implementing this interface are totally non-breaking and the assembly will still work perfectly with .NET ParallelFx provided you implement correctly <see cref="T:System.Threading.Tasks.TaskScheduler" /> correctly.</remarks>
</Docs>
<Members>
<Member MemberName="ParticipateUntil">
<MemberSignature Language="C#" Value="public void ParticipateUntil (System.Threading.Tasks.Task task);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void ParticipateUntil(class System.Threading.Tasks.Task task) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="task" Type="System.Threading.Tasks.Task" />
</Parameters>
<Docs>
<param name="task">The task to wait on.</param>
<summary>This method will be called when a thread decides to wait on a task completion. Developpers are free to simply wait on the supplied Task or provide a smarter cooperative waiting mechanism.</summary>
<remarks>A simple waiting mechanism can be achieved via the following pattern:
<example><code lang="C#">
public void PartiticipateUntil (Task task)
{
ManualResetEventSlim evt = new ManualResetEventSlim (false);
task.ContinueWith (_ =&gt; evt.Set (), TaskContinuationOptions.ExecuteSynchronously);
evt.Wait ();
}
</code></example></remarks>
</Docs>
</Member>
<Member MemberName="ParticipateUntil">
<MemberSignature Language="C#" Value="public bool ParticipateUntil (System.Threading.Tasks.Task task, System.Threading.ManualResetEventSlim predicateEvt, int millisecondsTimeout);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool ParticipateUntil(class System.Threading.Tasks.Task task, class System.Threading.ManualResetEventSlim predicateEvt, int32 millisecondsTimeout) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="task" Type="System.Threading.Tasks.Task" />
<Parameter Name="predicateEvt" Type="System.Threading.ManualResetEventSlim" />
<Parameter Name="millisecondsTimeout" Type="System.Int32" />
</Parameters>
<Docs>
<param name="task">Task to wait on.</param>
<param name="predicateEvt">Additional preemptive conditions for stopping the waiting.</param>
<param name="millisecondsTimeout">An countdown specifying the maximum amount of time the method can last before returning.</param>
<summary>This method will be called when a thread decides to wait on a task completion or a set of condition summarized via the given <see cref="T:System.Threading.ManualResetEventSlim" />. Developpers are free to simply wait on the supplied Task/event or provide a smarter cooperative waiting mechanism.</summary>
<returns>
<see langword="true" /> if the method returns because of either event was set or timeout was reached, <see langword="false" /> if the task completed.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,53 @@
<Type Name="MonoTaskExtensions" FullName="Mono.Threading.Tasks.MonoTaskExtensions">
<TypeSignature Language="C#" Value="public static class MonoTaskExtensions" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed MonoTaskExtensions extends System.Object" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provide public wrappers around internal methods used in Mono implementation of <see cref="T:System.Threading.Tasks.Task" /> type.</summary>
<remarks>These extensions are targeted at developers coding custom schedulers so that they can tap into the specificities of the Mono implementation.</remarks>
</Docs>
<Members>
<Member MemberName="Execute">
<MemberSignature Language="C#" Value="public static void Execute (this System.Threading.Tasks.Task task, Action&lt;System.Threading.Tasks.Task&gt; childWorkAdder);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void Execute(class System.Threading.Tasks.Task task, class System.Action`1&lt;class System.Threading.Tasks.Task&gt; childWorkAdder) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="task" Type="System.Threading.Tasks.Task" RefType="this" />
<Parameter Name="childWorkAdder" Type="System.Action&lt;System.Threading.Tasks.Task&gt;" />
</Parameters>
<Docs>
<param name="task">Task to run.</param>
<param name="childWorkAdder">Action that will be called with the Task that is being scheduled while above Task is executed as a parameter.</param>
<summary>Execute a <see cref="T:System.Threading.Tasks.Task" /> body and track any other Task scheduling during it which is then passed to the supplied action for specific scheduling.</summary>
<remarks>
<block subset="none" type="note">
<para>
If the inner Task that is scheduled has been created with TaskCreationOptions.PreferFairness, the supplied action won't be called and instead the Task will be scheduled normally on the current <see cref="T:System.Threading.Tasks.TaskScheduler" /></para>
</block>
The following example retrieve a task from a local deque, execute it and add any eventual child Task created/scheduled to its local deque using PushBottom (safe since we are on the same thread the whole time).
<example><code lang="C#">
Task task;
IConcurrentDeque&lt;Task&gt; deque = new CyclicDeque&lt;Task&gt; ();
if (deque.PopBottom (out task) == PopResult.Succeed))
task.Execute (deque.PushBottom);
</code></example></remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,59 @@
<Type Name="PopResult" FullName="Mono.Threading.Tasks.PopResult">
<TypeSignature Language="C#" Value="public enum PopResult" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed PopResult extends System.Enum" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Enum</BaseTypeName>
</Base>
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName="Abort">
<MemberSignature Language="C#" Value="Abort" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Threading.Tasks.PopResult Abort = int32(2)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
</Docs>
</Member>
<Member MemberName="Empty">
<MemberSignature Language="C#" Value="Empty" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Threading.Tasks.PopResult Empty = int32(1)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
</Docs>
</Member>
<Member MemberName="Succeed">
<MemberSignature Language="C#" Value="Succeed" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Threading.Tasks.PopResult Succeed = int32(0)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.PopResult</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added.</summary>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,351 @@
<Type Name="ThreadWorker" FullName="Mono.Threading.Tasks.ThreadWorker">
<TypeSignature Language="C#" Value="public class ThreadWorker : IDisposable" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ThreadWorker extends System.Object implements class System.IDisposable" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>This class wraps a <see cref="T:System.Threading.Thread" /> to provide a suitable ParallelFx worker (i.e. something that process <see cref="T:System.Threading.Tasks.Task" />).</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public ThreadWorker (Mono.Threading.Tasks.ThreadWorker[] others, int workerPosition, System.Collections.Concurrent.IProducerConsumerCollection&lt;System.Threading.Tasks.Task&gt; sharedWorkQueue, Mono.Threading.Tasks.IConcurrentDeque&lt;System.Threading.Tasks.Task&gt; dDeque, System.Threading.ThreadPriority priority, System.Threading.ManualResetEvent handle);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class Mono.Threading.Tasks.ThreadWorker[] others, int32 workerPosition, class System.Collections.Concurrent.IProducerConsumerCollection`1&lt;class System.Threading.Tasks.Task&gt; sharedWorkQueue, class Mono.Threading.Tasks.IConcurrentDeque`1&lt;class System.Threading.Tasks.Task&gt; dDeque, valuetype System.Threading.ThreadPriority priority, class System.Threading.ManualResetEvent handle) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="others" Type="Mono.Threading.Tasks.ThreadWorker[]" />
<Parameter Name="workerPosition" Type="System.Int32" />
<Parameter Name="sharedWorkQueue" Type="System.Collections.Concurrent.IProducerConsumerCollection&lt;System.Threading.Tasks.Task&gt;" />
<Parameter Name="dDeque" Type="Mono.Threading.Tasks.IConcurrentDeque&lt;System.Threading.Tasks.Task&gt;" />
<Parameter Name="priority" Type="System.Threading.ThreadPriority" />
<Parameter Name="handle" Type="System.Threading.ManualResetEvent" />
</Parameters>
<Docs>
<param name="others">This is an array containing all other workers created. It's necessary if you want worker cooperating together for getting extra work.</param>
<param name="workerPosition">The position in the previous array where this worker will be placed.</param>
<param name="sharedWorkQueue">This is the global data structures that holds the Task when the system starts and is not yet bootstraped. It's also where tasks end up if they are executed with fairness enabled.</param>
<param name="dDeque">The personnal instance of a deque type used by the worker when storing the tasks its responsible of and letting other workers retrieve them.</param>
<param name="priority">The priority of the underlying thread.</param>
<param name="handle">This is a handle shared (ideally) by all workers to synchronize and deep sleep when there is no more work to do. Setting the handle will wake them up.</param>
<summary>Build a new worker instance.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AutoReference">
<MemberSignature Language="C#" Value="public static Mono.Threading.Tasks.ThreadWorker AutoReference { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property class Mono.Threading.Tasks.ThreadWorker AutoReference" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.ThreadWorker</ReturnType>
</ReturnValue>
<Docs>
<summary>This [ThreadStatic] field is automatically updated when WorkerMethod method run so that you can check if you are making a re-entrant call on the same thread.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ChildWorkAdder">
<MemberSignature Language="C#" Value="protected virtual void ChildWorkAdder (System.Threading.Tasks.Task t);" />
<MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance void ChildWorkAdder(class System.Threading.Tasks.Task t) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="t" Type="System.Threading.Tasks.Task" />
</Parameters>
<Docs>
<param name="t">Task being scheduled</param>
<summary>This method is called when the currently executing Task tries to schedule another Task as part of its computation. This method allows to redirect the scheduling to a specific place.</summary>
<remarks>By default the supplied task is added to the ThreadWorker deque via the PushBottom operation.</remarks>
</Docs>
</Member>
<Member MemberName="Deque">
<MemberSignature Language="C#" Value="protected Mono.Threading.Tasks.IConcurrentDeque&lt;System.Threading.Tasks.Task&gt; Deque { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class Mono.Threading.Tasks.IConcurrentDeque`1&lt;class System.Threading.Tasks.Task&gt; Deque" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.IConcurrentDeque&lt;System.Threading.Tasks.Task&gt;</ReturnType>
</ReturnValue>
<Docs>
<summary>Allow access to the <see cref="T:Mono.Threading.Tasks.IConcurrentDeque&lt;T&gt;" /> used by the ThreadWorker.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="public virtual void Dispose ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public virtual bool Equals (Mono.Threading.Tasks.ThreadWorker other);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Equals(class Mono.Threading.Tasks.ThreadWorker other) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="other" Type="Mono.Threading.Tasks.ThreadWorker" />
</Parameters>
<Docs>
<param name="other">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public override bool Equals (object obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="System.Object" />
</Parameters>
<Docs>
<param name="obj">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Finished">
<MemberSignature Language="C#" Value="public bool Finished { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Finished" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Tells if the underlying thread has exited or not.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetHashCode">
<MemberSignature Language="C#" Value="public override int GetHashCode ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Id">
<MemberSignature Language="C#" Value="public int Id { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Id" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Return the Id of the underlying thread used by the ThreadWorker.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="InitializeUnderlyingThread">
<MemberSignature Language="C#" Value="protected virtual void InitializeUnderlyingThread ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void InitializeUnderlyingThread() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Others">
<MemberSignature Language="C#" Value="protected Mono.Threading.Tasks.ThreadWorker[] Others { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class Mono.Threading.Tasks.ThreadWorker[] Others" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.Tasks.ThreadWorker[]</ReturnType>
</ReturnValue>
<Docs>
<summary>Returns the array of existing ThreadWorker that been initially supplied.</summary>
<value>To be added.</value>
<remarks>If you are iterating the array, make sure you skip the current instance of ThreadWorker with value of <see cref="P:Mono.Threading.Tasks.ThreadWorker.WorkerPosition" /></remarks>
</Docs>
</Member>
<Member MemberName="Priority">
<MemberSignature Language="C#" Value="protected System.Threading.ThreadPriority Priority { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Threading.ThreadPriority Priority" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.ThreadPriority</ReturnType>
</ReturnValue>
<Docs>
<summary>The priority the underlying thread is running with.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Pulse">
<MemberSignature Language="C#" Value="public virtual void Pulse ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Pulse() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Stop">
<MemberSignature Language="C#" Value="public virtual void Stop ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Stop() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Stop the underlying thread of this ThreadWorker.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="WaitHandle">
<MemberSignature Language="C#" Value="protected System.Threading.ManualResetEvent WaitHandle { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Threading.ManualResetEvent WaitHandle" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.ManualResetEvent</ReturnType>
</ReturnValue>
<Docs>
<summary>Acces the WaitHandle normally shared by all your ThreadWorker instances to deep sleep or otherwise synchronize on.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="WorkerMethod">
<MemberSignature Language="C#" Value="protected virtual bool WorkerMethod ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance bool WorkerMethod() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>This is the method executed by WorkerMethod to do the actual processing of tasks.</summary>
<returns>
<see langword="true" /> if the method processed a <see cref="T:System.Threading.Tasks.Task" /> while it ran, <see langword="false" /> otherwise.</returns>
<remarks>By default this method applies the following algorithm:
<list type="bullet"><item><term>Check if the global data structures contains task and fetch as much as possible into its own deque</term></item><item><term>Execute whatever its deque contains</term></item><item><term>Do a couple of pass over the other workers to try to steal some work to do</term></item></list></remarks>
</Docs>
</Member>
<Member MemberName="WorkerMethodWrapper">
<MemberSignature Language="C#" Value="protected virtual void WorkerMethodWrapper ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void WorkerMethodWrapper() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>This is the method executed by the underlying thread.</summary>
<remarks>By default this method consists of a while loop calling repeatedly <see cref="M:Mono.Threading.Tasks.ThreadWorker.WorkerMethodWrapper()" /> and sleeping accordingly when there is no more work to do.</remarks>
</Docs>
</Member>
<Member MemberName="WorkerPosition">
<MemberSignature Language="C#" Value="protected int WorkerPosition { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 WorkerPosition" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Position of the current instance in the <see cref="P:Mono.Threading.Tasks.ThreadWorker.Others" /> array.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,240 @@
<Type Name="AtomicBoolean" FullName="Mono.Threading.AtomicBoolean">
<TypeSignature Language="C#" Value="public class AtomicBoolean" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit AtomicBoolean extends System.Object" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provide a volatile bool reference type and a set of Interlocked method to modify it.</summary>
<remarks>This type can be safely passed around.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public AtomicBoolean ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="CompareAndExchange">
<MemberSignature Language="C#" Value="public bool CompareAndExchange (bool expected, bool newVal);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool CompareAndExchange(bool expected, bool newVal) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="expected" Type="System.Boolean" />
<Parameter Name="newVal" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="expected">To be added.</param>
<param name="newVal">To be added.</param>
<summary>Same behavior than <see cref="M:System.Threading.Interlocked.CompareExchange(System.Int32@,System.Int32,System.Int32)" /></summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public bool Equals (Mono.Threading.AtomicBoolean rhs);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Equals(class Mono.Threading.AtomicBoolean rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="Mono.Threading.AtomicBoolean" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public override bool Equals (object rhs);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="System.Object" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Exchange">
<MemberSignature Language="C#" Value="public bool Exchange (bool newVal);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Exchange(bool newVal) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="newVal" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="newVal">To be added.</param>
<summary>Same behavior than <see cref="M:System.Threading.Interlocked.Exchange(System.Int32@,System.Int32)" /></summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="FromValue">
<MemberSignature Language="C#" Value="public static Mono.Threading.AtomicBoolean FromValue (bool value);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class Mono.Threading.AtomicBoolean FromValue(bool value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.AtomicBoolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="value">To be added.</param>
<summary>Provide a static facility method for creating new AtomicBoolean value initialized with specific boolean.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetHashCode">
<MemberSignature Language="C#" Value="public override int GetHashCode ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="op_Explicit">
<MemberSignature Language="C#" Value="public static bool op_Explicit (Mono.Threading.AtomicBoolean rhs);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname bool op_Explicit(class Mono.Threading.AtomicBoolean rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="Mono.Threading.AtomicBoolean" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="op_Implicit">
<MemberSignature Language="C#" Value="public static Mono.Threading.AtomicBoolean op_Implicit (bool rhs);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Mono.Threading.AtomicBoolean op_Implicit(bool rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.AtomicBoolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryRelaxedSet">
<MemberSignature Language="C#" Value="public bool TryRelaxedSet ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryRelaxedSet() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Try to atomically change the value from false to true.</summary>
<returns>To be added.</returns>
<remarks>This method is lighter than <see cref="M:Mono.Threading.AtomicBoolean.TrySet()" /> in the case the AtomicBoolean is already set to true because it first uses a normal read to check the value.</remarks>
</Docs>
</Member>
<Member MemberName="TrySet">
<MemberSignature Language="C#" Value="public bool TrySet ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TrySet() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Try to atomically change the value from false to true.</summary>
<returns>To be added.</returns>
<remarks>This method is essentially a shortand for `!AtomicBoolean.Exchange (true)'</remarks>
</Docs>
</Member>
<Member MemberName="Value">
<MemberSignature Language="C#" Value="public bool Value { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Value" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>The boolean value represented by this instance.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,227 @@
<Type Name="AtomicBooleanValue" FullName="Mono.Threading.AtomicBooleanValue">
<TypeSignature Language="C#" Value="public struct AtomicBooleanValue" />
<TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit AtomicBooleanValue extends System.ValueType" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.ValueType</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provide a volatile bool value type and a set of Interlocked method to modify it.</summary>
<remarks>This type is not safe to pass around.</remarks>
</Docs>
<Members>
<Member MemberName="CompareAndExchange">
<MemberSignature Language="C#" Value="public bool CompareAndExchange (bool expected, bool newVal);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool CompareAndExchange(bool expected, bool newVal) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="expected" Type="System.Boolean" />
<Parameter Name="newVal" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="expected">To be added.</param>
<param name="newVal">To be added.</param>
<summary>Same behavior than <see cref="M:System.Threading.Interlocked.CompareExchange(System.Int32@,System.Int32,System.Int32)" /></summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public bool Equals (Mono.Threading.AtomicBooleanValue rhs);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Equals(valuetype Mono.Threading.AtomicBooleanValue rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="Mono.Threading.AtomicBooleanValue" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public override bool Equals (object rhs);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="System.Object" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Exchange">
<MemberSignature Language="C#" Value="public bool Exchange (bool newVal);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Exchange(bool newVal) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="newVal" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="newVal">To be added.</param>
<summary>Same behavior than <see cref="M:System.Threading.Interlocked.Exchange(System.Int32@,System.Int32)" /></summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="FromValue">
<MemberSignature Language="C#" Value="public static Mono.Threading.AtomicBooleanValue FromValue (bool value);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Mono.Threading.AtomicBooleanValue FromValue(bool value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.AtomicBooleanValue</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="value">To be added.</param>
<summary>Provide a static facility method for creating new AtomicBoolean value initialized with specific boolean.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetHashCode">
<MemberSignature Language="C#" Value="public override int GetHashCode ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="op_Explicit">
<MemberSignature Language="C#" Value="public static bool op_Explicit (Mono.Threading.AtomicBooleanValue rhs);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname bool op_Explicit(valuetype Mono.Threading.AtomicBooleanValue rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="Mono.Threading.AtomicBooleanValue" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="op_Implicit">
<MemberSignature Language="C#" Value="public static Mono.Threading.AtomicBooleanValue op_Implicit (bool rhs);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname valuetype Mono.Threading.AtomicBooleanValue op_Implicit(bool rhs) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.AtomicBooleanValue</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rhs" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="rhs">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryRelaxedSet">
<MemberSignature Language="C#" Value="public bool TryRelaxedSet ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryRelaxedSet() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Try to atomically change the value from false to true.</summary>
<returns>To be added.</returns>
<remarks>This method is lighter than <see cref="M:Mono.Threading.AtomicBoolean.TrySet()" /> in the case the AtomicBoolean is already set to true because it first uses a normal read to check the value.</remarks>
</Docs>
</Member>
<Member MemberName="TrySet">
<MemberSignature Language="C#" Value="public bool TrySet ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TrySet() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Try to atomically change the value from false to true.</summary>
<returns>To be added.</returns>
<remarks>This method is essentially a shortand for `!AtomicBoolean.Exchange (true)'</remarks>
</Docs>
</Member>
<Member MemberName="Value">
<MemberSignature Language="C#" Value="public bool Value { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Value" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>The boolean value represented by this instance.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,118 @@
<Type Name="CSnzi" FullName="Mono.Threading.CSnzi">
<TypeSignature Language="C#" Value="public class CSnzi" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CSnzi extends System.Object" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Implementation of a closable scalable non-zero indicator. It has the same API than <see cref="T:System.Theading.Snzi" /> but also allow to temporarily disable state change.</summary>
<remarks />
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CSnzi ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initialize Snzi object with a zero value.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="Arrive">
<MemberSignature Language="C#" Value="public Mono.Threading.CSnziNode Arrive ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Mono.Threading.CSnziNode Arrive() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.CSnziNode</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Increment the state of the CSnzi object.</summary>
<returns>Returns the internal node where the increment action occured. Returns null if CSnzi is closed.</returns>
<remarks>To undo an Arrive, you must call <see cref="M:Mono.Threading.CSnzi.Depart()" /> using the returned node object as an argument.</remarks>
</Docs>
</Member>
<Member MemberName="Close">
<MemberSignature Language="C#" Value="public bool Close ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Close() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Close the CSnzi object to subsequent Arrive or Depart action until <see cref="M:Mono.Threading.CSnzi.Open()" /> is called.</summary>
<returns>True if the state of the CSnzi was zero or if it was already closed, <see langword="false" /> otherwise.</returns>
<remarks />
</Docs>
</Member>
<Member MemberName="Depart">
<MemberSignature Language="C#" Value="public bool Depart (Mono.Threading.CSnziNode node);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Depart(class Mono.Threading.CSnziNode node) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="node" Type="Mono.Threading.CSnziNode" />
</Parameters>
<Docs>
<param name="node">The node to execute the decrement operation on.</param>
<summary>Decrement the state of the CSnzi object.</summary>
<returns>True if the CSnzi is open and its state is zero, <see langword="false" /> otherwise.</returns>
<remarks>Node argument must have been returned by a prior <see cref="M:Mono.Threading.CSnzi.Arrive()" /> call.</remarks>
</Docs>
</Member>
<Member MemberName="Open">
<MemberSignature Language="C#" Value="public void Open ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Open() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Query">
<MemberSignature Language="C#" Value="public Tuple&lt;bool,Mono.Threading.CSnziState&gt; Query ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Tuple`2&lt;bool, valuetype Mono.Threading.CSnziState&gt; Query() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Tuple&lt;System.Boolean,Mono.Threading.CSnziState&gt;</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns the current state of the CSnzi object.</summary>
<returns>A <see cref="T:System.Threading.QueryReturn" /> object with CSnzi current state informations.</returns>
<remarks />
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,31 @@
<Type Name="CSnziNode" FullName="Mono.Threading.CSnziNode">
<TypeSignature Language="C#" Value="public abstract class CSnziNode" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit CSnziNode extends System.Object" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected CSnziNode ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,45 @@
<Type Name="CSnziState" FullName="Mono.Threading.CSnziState">
<TypeSignature Language="C#" Value="public enum CSnziState" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed CSnziState extends System.Enum" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Enum</BaseTypeName>
</Base>
<Docs>
<summary>Define the state of a CSnzi object.</summary>
<remarks />
</Docs>
<Members>
<Member MemberName="Closed">
<MemberSignature Language="C#" Value="Closed" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Threading.CSnziState Closed = int32(1)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.CSnziState</ReturnType>
</ReturnValue>
<Docs>
<summary>Object is closed and Arrive/Close won't work</summary>
</Docs>
</Member>
<Member MemberName="Open">
<MemberSignature Language="C#" Value="Open" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Threading.CSnziState Open = int32(0)" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Mono.Threading.CSnziState</ReturnType>
</ReturnValue>
<Docs>
<summary>Object is opened and Arrive/Close work as expected.</summary>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,154 @@
<Type Name="ReaderWriterLockSlimmer" FullName="Mono.Threading.ReaderWriterLockSlimmer">
<TypeSignature Language="C#" Value="public struct ReaderWriterLockSlimmer" />
<TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit ReaderWriterLockSlimmer extends System.ValueType" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.ValueType</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>This is an even lighter and faster version of <see cref="T:System.Threading.ReaderWriterLockSlim" /> that provide only the bare functionnality of a reader-writer lock with no thread tracking and no heavy wait mechanism. In summary, it's what <see cref="T:System.Threading.SpinLock" /> is to <see cref="T:System.Threading.Monitor" />.</summary>
<remarks>The Enter methods of this class use <see cref="T:System.Threading.SpinWait" /> for waiting which means you shouldn't use this type with locked long running operations.</remarks>
</Docs>
<Members>
<Member MemberName="EnterReadLock">
<MemberSignature Language="C#" Value="public void EnterReadLock (ref bool taken);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void EnterReadLock(bool taken) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="taken" Type="System.Boolean&amp;" RefType="ref" />
</Parameters>
<Docs>
<param name="taken">
<para>
Must be set to false prior calling this method.
</para>
<para>
If value is <see langword="true" /> lock has been taken. This value is safe to trust even under exceptional situations.
</para>
</param>
<summary>Attempts to get the lock in Read mode and loops if it's not yet available.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="EnterWriteLock">
<MemberSignature Language="C#" Value="public void EnterWriteLock (ref bool taken);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void EnterWriteLock(bool taken) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="taken" Type="System.Boolean&amp;" RefType="ref" />
</Parameters>
<Docs>
<param name="taken">
<para>
Must be set to false prior calling this method.
</para>
<para>
If value is <see langword="true" /> lock has been taken. This value is safe to trust even under exceptional situations.
</para>
</param>
<summary>Attempts to get the lock in Write mode and loops if it's not yet available.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ExitReadLock">
<MemberSignature Language="C#" Value="public void ExitReadLock ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ExitReadLock() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Remove a reader from the lock.</summary>
<remarks>A call to <see cref="M:Mono.Threading.ReaderWriterLockSlimmer.EnterReadLock()" /> or <see cref="M:Mono.Threading.ReaderWriterLockSlimmer.TryEnterReadLock()" /> must be matched by this method to release it no matter the thread that call it.</remarks>
</Docs>
</Member>
<Member MemberName="ExitWriteLock">
<MemberSignature Language="C#" Value="public void ExitWriteLock ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ExitWriteLock() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Remove writer from the lock.</summary>
<remarks>A call to <see cref="M:Mono.Threading.ReaderWriterLockSlimmer.EnterWriteLock()" /> or <see cref="M:Mono.Threading.ReaderWriterLockSlimmer.TryEnterWriteLock()" /> must be matched by this method to release it no matter the thread that call it.</remarks>
</Docs>
</Member>
<Member MemberName="TryEnterReadLock">
<MemberSignature Language="C#" Value="public void TryEnterReadLock (ref bool taken);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void TryEnterReadLock(bool taken) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="taken" Type="System.Boolean&amp;" RefType="ref" />
</Parameters>
<Docs>
<param name="taken">
<para>
Must be set to false prior calling this method.
</para>
<para>
If value is <see langword="true" /> lock has been taken. This value is safe to trust even under exceptional situations.
</para>
</param>
<summary>Non-blocking equivalent of <see cref="m:Mono.Threading.EnterReadLock(System.Boolean@)" />.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="TryEnterWriteLock">
<MemberSignature Language="C#" Value="public void TryEnterWriteLock (ref bool taken);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void TryEnterWriteLock(bool taken) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="taken" Type="System.Boolean&amp;" RefType="ref" />
</Parameters>
<Docs>
<param name="taken">
<para>
Must be set to false prior calling this method.
</para>
<para>
If value is <see langword="true" /> lock has been taken. This value is safe to trust even under exceptional situations.
</para>
</param>
<summary>Non-blocking equivalent of <see cref="m:Mono.Threading.EnterWriteLock(System.Boolean@)" />.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,95 @@
<Type Name="Snzi" FullName="Mono.Threading.Snzi">
<TypeSignature Language="C#" Value="public class Snzi" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Snzi extends System.Object" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Implementation of a scalable non-zero indicator.</summary>
<remarks />
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public Snzi ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initialize Snzi object with a zero value.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="Decrement">
<MemberSignature Language="C#" Value="public void Decrement ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Decrement() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Decrement the value of the Snzi object.</summary>
<remarks>To undo the action, a call to <see cref="M:Mono.Threading.Snzi.Increment()" /> must be made on the same thread that initially called this method.</remarks>
</Docs>
</Member>
<Member MemberName="Increment">
<MemberSignature Language="C#" Value="public void Increment ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Increment() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Increment the value of the Snzi object.</summary>
<remarks>To undo the action, a call to <see cref="M:Mono.Threading.Snzi.Decrement()" /> must be made on the same thread that initially called this method.</remarks>
</Docs>
</Member>
<Member MemberName="IsSet">
<MemberSignature Language="C#" Value="public bool IsSet { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsSet" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Query if Snzi is has a zero value or not.</summary>
<value>True if Snzi is zero, <see langword="false" /> otherwise.</value>
<remarks />
</Docs>
</Member>
<Member MemberName="Reset">
<MemberSignature Language="C#" Value="public void Reset ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Reset() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Reset the Snzi object to a zero state.</summary>
<remarks />
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,63 @@
<Type Name="SpinLockWrapper" FullName="Mono.Threading.SpinLockWrapper">
<TypeSignature Language="C#" Value="public class SpinLockWrapper" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit SpinLockWrapper extends System.Object" />
<AssemblyInfo>
<AssemblyName>Mono.Parallel</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provide a simplistic class wrapper around <see cref="T:System.Threading.SpinLock" /> to be able to pass around the lock.</summary>
<remarks />
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public SpinLockWrapper ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initialize underlying <see cref="T:System.Threading.SpinLock" /> instance with thread tracking disabled.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public SpinLockWrapper (bool enableTracking);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(bool enableTracking) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="enableTracking" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="enableTracking">
<see langword="true" /> to enable thread tracking, <see langword="false" /> otherwise.</param>
<summary>Initialize underlying <see cref="T:System.Threading.SpinLock" /> with provided value.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="Lock">
<MemberSignature Language="C#" Value="public System.Threading.SpinLock Lock;" />
<MemberSignature Language="ILAsm" Value=".field public valuetype System.Threading.SpinLock Lock" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.SpinLock</ReturnType>
</ReturnValue>
<Docs>
<summary>Instance of <see cref="T:System.Threading.SpinLock" /> to use.</summary>
<remarks />
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,64 @@
<Overview>
<Assemblies>
<Assembly Name="Mono.Parallel" Version="4.0.0.0">
<AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 79 15 99 77 d2 d0 3a 8e 6b ea 7a 2e 74 e8 d1 af cc 93 e8 85 19 74 95 2b b4 80 a1 2c 91 34 47 4d 04 06 24 47 c3 7e 0e 68 c0 80 53 6f cf 3c 3f be 2f f9 c9 79 ce 99 84 75 e5 06 e8 ce 82 dd 5b 0f 35 0d c1 0e 93 bf 2e ee cf 87 4b 24 77 0c 50 81 db ea 74 47 fd da fa 27 7b 22 de 47 d6 ff ea 44 96 74 a4 f9 fc cf 84 d1 50 69 08 93 80 28 4d bd d3 5f 46 cd ff 12 a1 bd 78 e4 ef 00 65 d0 16 df ]</AssemblyPublicKey>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
</Attributes>
</Assembly>
</Assemblies>
<Remarks>To be added.</Remarks>
<Copyright>To be added.</Copyright>
<Types>
<Namespace Name="Mono.Collections.Concurrent">
<Type Name="ConcurrentOrderedList`1" DisplayName="ConcurrentOrderedList&lt;T&gt;" Kind="Class" />
<Type Name="ConcurrentSkipList`1" DisplayName="ConcurrentSkipList&lt;T&gt;" Kind="Class" />
</Namespace>
<Namespace Name="Mono.Threading">
<Type Name="AtomicBoolean" Kind="Class" />
<Type Name="AtomicBooleanValue" Kind="Structure" />
<Type Name="CSnzi" Kind="Class" />
<Type Name="CSnziNode" Kind="Class" />
<Type Name="CSnziState" Kind="Enumeration" />
<Type Name="ReaderWriterLockSlimmer" Kind="Structure" />
<Type Name="Snzi" Kind="Class" />
<Type Name="SpinLockWrapper" Kind="Class" />
</Namespace>
<Namespace Name="Mono.Threading.Tasks">
<Type Name="CyclicDeque`1" DisplayName="CyclicDeque&lt;T&gt;" Kind="Class" />
<Type Name="IConcurrentDeque`1" DisplayName="IConcurrentDeque&lt;T&gt;" Kind="Interface" />
<Type Name="IMonoTaskScheduler" Kind="Interface" />
<Type Name="MonoTaskExtensions" Kind="Class" />
<Type Name="PopResult" Kind="Enumeration" />
<Type Name="ThreadWorker" Kind="Class" />
</Namespace>
</Types>
<Title>Mono.Parallel</Title>
<ExtensionMethods>
<ExtensionMethod>
<Targets>
<Target Type="T:System.Threading.Tasks.Task" />
</Targets>
<Member MemberName="Execute">
<MemberSignature Language="C#" Value="public static void Execute (this System.Threading.Tasks.Task task, Action&lt;System.Threading.Tasks.Task&gt; childWorkAdder);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void Execute(class System.Threading.Tasks.Task task, class System.Action`1&lt;class System.Threading.Tasks.Task&gt; childWorkAdder) cil managed" />
<MemberType>ExtensionMethod</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="task" Type="System.Threading.Tasks.Task" RefType="this" />
<Parameter Name="childWorkAdder" Type="System.Action&lt;System.Threading.Tasks.Task&gt;" />
</Parameters>
<Docs>
<param name="task">Task to run.</param>
<param name="childWorkAdder">Action that will be called with the Task that is being scheduled while above Task is executed as a parameter.</param>
<summary>Execute a <see cref="T:System.Threading.Tasks.Task" /> body and track any other Task scheduling during it which is then passed to the supplied action for specific scheduling.</summary>
</Docs>
<Link Type="Mono.Threading.Tasks.MonoTaskExtensions" Member="M:Mono.Threading.Tasks.MonoTaskExtensions.Execute(System.Threading.Tasks.Task,System.Action{System.Threading.Tasks.Task})" />
</Member>
</ExtensionMethod>
</ExtensionMethods>
</Overview>

View File

@@ -0,0 +1,6 @@
<Namespace Name="Mono.Collections.Concurrent">
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Namespace>

View File

@@ -0,0 +1,6 @@
<Namespace Name="Mono.Threading.Tasks">
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Namespace>

Some files were not shown because too many files have changed in this diff Show More