Class AtomicPointer
Represents atomic operations that can be applied to the value referenced by pointer.
Namespace: DotNext.Threading
Assembly: DotNext.Unsafe.dll
Syntax
public static class AtomicPointer : object
Methods
| Improve this Doc View SourceAccumulateAndGetValue(Pointer<IntPtr>, IntPtr, Func<IntPtr, IntPtr, IntPtr>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static IntPtr AccumulateAndGetValue(this Pointer<IntPtr> pointer, IntPtr x, Func<IntPtr, IntPtr, IntPtr> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | x | Accumulator operand. |
Func<IntPtr, IntPtr, IntPtr> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
IntPtr | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<IntPtr>, IntPtr, ValueFunc<IntPtr, IntPtr, IntPtr>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static IntPtr AccumulateAndGetValue(this Pointer<IntPtr> pointer, IntPtr x, ValueFunc<IntPtr, IntPtr, IntPtr> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | x | Accumulator operand. |
ValueFunc<IntPtr, IntPtr, IntPtr> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
IntPtr | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Double>, Double, Func<Double, Double, Double>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static double AccumulateAndGetValue(this Pointer<double> pointer, double x, Func<double, double, double> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | x | Accumulator operand. |
Func<Double, Double, Double> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Double | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Double>, Double, ValueFunc<Double, Double, Double>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static double AccumulateAndGetValue(this Pointer<double> pointer, double x, ValueFunc<double, double, double> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | x | Accumulator operand. |
ValueFunc<Double, Double, Double> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Double | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Int32>, Int32, Func<Int32, Int32, Int32>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static int AccumulateAndGetValue(this Pointer<int> pointer, int x, Func<int, int, int> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | x | Accumulator operand. |
Func<Int32, Int32, Int32> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int32 | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Int32>, Int32, ValueFunc<Int32, Int32, Int32>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static int AccumulateAndGetValue(this Pointer<int> pointer, int x, ValueFunc<int, int, int> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | x | Accumulator operand. |
ValueFunc<Int32, Int32, Int32> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int32 | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Int64>, Int64, Func<Int64, Int64, Int64>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static long AccumulateAndGetValue(this Pointer<long> pointer, long x, Func<long, long, long> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | x | Accumulator operand. |
Func<Int64, Int64, Int64> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int64 | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Int64>, Int64, ValueFunc<Int64, Int64, Int64>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static long AccumulateAndGetValue(this Pointer<long> pointer, long x, ValueFunc<long, long, long> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | x | Accumulator operand. |
ValueFunc<Int64, Int64, Int64> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int64 | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Single>, Single, Func<Single, Single, Single>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static float AccumulateAndGetValue(this Pointer<float> pointer, float x, Func<float, float, float> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | x | Accumulator operand. |
Func<Single, Single, Single> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Single | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AccumulateAndGetValue(Pointer<Single>, Single, ValueFunc<Single, Single, Single>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the updated value.
Declaration
public static float AccumulateAndGetValue(this Pointer<float> pointer, float x, ValueFunc<float, float, float> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | x | Accumulator operand. |
ValueFunc<Single, Single, Single> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Single | The updated value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
AddValue(Pointer<IntPtr>, IntPtr)
Adds two integers and replaces the first integer with the sum, as an atomic operation.
Declaration
public static IntPtr AddValue(this Pointer<IntPtr> pointer, IntPtr value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | value | The value to be added to the integer located in the memory at the address specified by pointer. |
Returns
Type | Description |
---|---|
IntPtr | The new value stored at memory address. |
AddValue(Pointer<Double>, Double)
Adds two numbers and replaces the first number with the sum, as an atomic operation.
Declaration
public static double AddValue(this Pointer<double> pointer, double value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | value | The value to be added to the number located in the memory at the address specified by pointer. |
Returns
Type | Description |
---|---|
Double | The new value stored at memory address. |
AddValue(Pointer<Int32>, Int32)
Adds two integers and replaces the first integer with the sum, as an atomic operation.
Declaration
public static int AddValue(this Pointer<int> pointer, int value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | value | The value to be added to the integer located in the memory at the address specified by pointer. |
Returns
Type | Description |
---|---|
Int32 | The new value stored at memory address. |
AddValue(Pointer<Int64>, Int64)
Adds two integers and replaces the first integer with the sum, as an atomic operation.
Declaration
public static long AddValue(this Pointer<long> pointer, long value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | value | The value to be added to the integer located in the memory at the address specified by pointer. |
Returns
Type | Description |
---|---|
Int64 | The new value stored at memory address. |
AddValue(Pointer<Single>, Single)
Adds two numbers and replaces the first number with the sum, as an atomic operation.
Declaration
public static float AddValue(this Pointer<float> pointer, float value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | value | The value to be added to the number located in the memory at the address specified by pointer. |
Returns
Type | Description |
---|---|
Single | The new value stored at memory address. |
CompareAndSetValue(Pointer<IntPtr>, IntPtr, IntPtr)
Atomically sets a value located at the specified address in the memory to the given updated value if the current value == the expected value.
Declaration
public static bool CompareAndSetValue(this Pointer<IntPtr> pointer, IntPtr expected, IntPtr update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | expected | The expected value. |
IntPtr | update | The new value. |
Returns
Type | Description |
---|---|
Boolean | true if successful. false return indicates that the actual value was not equal to the expected value. |
CompareAndSetValue(Pointer<Double>, Double, Double)
Atomically sets a value located at the specified address in the memory to the given updated value if the current value == the expected value.
Declaration
public static bool CompareAndSetValue(this Pointer<double> pointer, double expected, double update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | expected | The expected value. |
Double | update | The new value. |
Returns
Type | Description |
---|---|
Boolean | true if successful. false return indicates that the actual value was not equal to the expected value. |
CompareAndSetValue(Pointer<Int32>, Int32, Int32)
Atomically sets a value located at the specified address in the memory to the given updated value if the current value == the expected value.
Declaration
public static bool CompareAndSetValue(this Pointer<int> pointer, int expected, int update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | expected | The expected value. |
Int32 | update | The new value. |
Returns
Type | Description |
---|---|
Boolean | true if successful. false return indicates that the actual value was not equal to the expected value. |
CompareAndSetValue(Pointer<Int64>, Int64, Int64)
Atomically sets a value located at the specified address in the memory to the given updated value if the current value == the expected value.
Declaration
public static bool CompareAndSetValue(this Pointer<long> pointer, long expected, long update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | expected | The expected value. |
Int64 | update | The new value. |
Returns
Type | Description |
---|---|
Boolean | true if successful. false return indicates that the actual value was not equal to the expected value. |
CompareAndSetValue(Pointer<Single>, Single, Single)
Atomically sets a value located at the specified address in the memory to the given updated value if the current value == the expected value.
Declaration
public static bool CompareAndSetValue(this Pointer<float> pointer, float expected, float update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | expected | The expected value. |
Single | update | The new value. |
Returns
Type | Description |
---|---|
Boolean | true if successful. false return indicates that the actual value was not equal to the expected value. |
CompareExchangeValue(Pointer<IntPtr>, IntPtr, IntPtr)
Compares two native-sized signed integers for equality and, if they are equal, replaces the first value.
Declaration
public static IntPtr CompareExchangeValue(this Pointer<IntPtr> pointer, IntPtr value, IntPtr comparand)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | value | The value that replaces the destination value if the comparison results in equality. |
IntPtr | comparand | The value that is compared to the value at the memory address. |
Returns
Type | Description |
---|---|
IntPtr | The original value that was in the memory before. |
CompareExchangeValue(Pointer<Double>, Double, Double)
Compares two 64-bit floating-point numbers for equality and, if they are equal, replaces the first value.
Declaration
public static double CompareExchangeValue(this Pointer<double> pointer, double value, double comparand)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | value | The value that replaces the destination value if the comparison results in equality. |
Double | comparand | The value that is compared to the value at the memory address. |
Returns
Type | Description |
---|---|
Double | The original value that was in the memory before. |
CompareExchangeValue(Pointer<Int32>, Int32, Int32)
Compares two 32-bit signed integers for equality and, if they are equal, replaces the first value.
Declaration
public static int CompareExchangeValue(this Pointer<int> pointer, int value, int comparand)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | value | The value that replaces the destination value if the comparison results in equality. |
Int32 | comparand | The value that is compared to the value at the memory address. |
Returns
Type | Description |
---|---|
Int32 | The original value that was in the memory before. |
CompareExchangeValue(Pointer<Int64>, Int64, Int64)
Compares two 64-bit signed integers for equality and, if they are equal, replaces the first value.
Declaration
public static long CompareExchangeValue(this Pointer<long> pointer, long value, long comparand)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | value | The value that replaces the destination value if the comparison results in equality. |
Int64 | comparand | The value that is compared to the value at the memory address. |
Returns
Type | Description |
---|---|
Int64 | The original value that was in the memory before. |
CompareExchangeValue(Pointer<Single>, Single, Single)
Compares two 32-bit floating-point numbers for equality and, if they are equal, replaces the first value.
Declaration
public static float CompareExchangeValue(this Pointer<float> pointer, float value, float comparand)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | value | The value that replaces the destination value if the comparison results in equality. |
Single | comparand | The value that is compared to the value at the memory address. |
Returns
Type | Description |
---|---|
Single | The original value that was in the memory before. |
DecrementValue(Pointer<IntPtr>)
Decrements a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static IntPtr DecrementValue(this Pointer<IntPtr> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be decremented. |
Returns
Type | Description |
---|---|
IntPtr | The decremented value. |
DecrementValue(Pointer<Double>)
Decrements a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static double DecrementValue(this Pointer<double> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be decremented. |
Returns
Type | Description |
---|---|
Double | The incremented value. |
DecrementValue(Pointer<Int32>)
Decrements a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static int DecrementValue(this Pointer<int> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be decremented. |
Returns
Type | Description |
---|---|
Int32 | The incremented value. |
DecrementValue(Pointer<Int64>)
Decrements a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static long DecrementValue(this Pointer<long> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be decremented. |
Returns
Type | Description |
---|---|
Int64 | The decremented value. |
DecrementValue(Pointer<Single>)
Decrements a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static float DecrementValue(this Pointer<float> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be decremented. |
Returns
Type | Description |
---|---|
Single | The incremented value. |
GetAndAccumulateValue(Pointer<IntPtr>, IntPtr, Func<IntPtr, IntPtr, IntPtr>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static IntPtr GetAndAccumulateValue(this Pointer<IntPtr> pointer, IntPtr x, Func<IntPtr, IntPtr, IntPtr> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | x | Accumulator operand. |
Func<IntPtr, IntPtr, IntPtr> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
IntPtr | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<IntPtr>, IntPtr, ValueFunc<IntPtr, IntPtr, IntPtr>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static IntPtr GetAndAccumulateValue(this Pointer<IntPtr> pointer, IntPtr x, ValueFunc<IntPtr, IntPtr, IntPtr> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | x | Accumulator operand. |
ValueFunc<IntPtr, IntPtr, IntPtr> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
IntPtr | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Double>, Double, Func<Double, Double, Double>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static double GetAndAccumulateValue(this Pointer<double> pointer, double x, Func<double, double, double> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | x | Accumulator operand. |
Func<Double, Double, Double> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Double | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Double>, Double, ValueFunc<Double, Double, Double>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static double GetAndAccumulateValue(this Pointer<double> pointer, double x, ValueFunc<double, double, double> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | x | Accumulator operand. |
ValueFunc<Double, Double, Double> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Double | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Int32>, Int32, Func<Int32, Int32, Int32>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static int GetAndAccumulateValue(this Pointer<int> pointer, int x, Func<int, int, int> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | x | Accumulator operand. |
Func<Int32, Int32, Int32> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int32 | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Int32>, Int32, ValueFunc<Int32, Int32, Int32>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static int GetAndAccumulateValue(this Pointer<int> pointer, int x, ValueFunc<int, int, int> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | x | Accumulator operand. |
ValueFunc<Int32, Int32, Int32> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int32 | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Int64>, Int64, Func<Int64, Int64, Int64>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static long GetAndAccumulateValue(this Pointer<long> pointer, long x, Func<long, long, long> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | x | Accumulator operand. |
Func<Int64, Int64, Int64> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int64 | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Int64>, Int64, ValueFunc<Int64, Int64, Int64>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static long GetAndAccumulateValue(this Pointer<long> pointer, long x, ValueFunc<long, long, long> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | x | Accumulator operand. |
ValueFunc<Int64, Int64, Int64> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Int64 | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Single>, Single, Func<Single, Single, Single>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static float GetAndAccumulateValue(this Pointer<float> pointer, float x, Func<float, float, float> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | x | Accumulator operand. |
Func<Single, Single, Single> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Single | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndAccumulateValue(Pointer<Single>, Single, ValueFunc<Single, Single, Single>)
Atomically updates the current value referenced by pointer with the results of applying the given function to the current and given values, returning the original value.
Declaration
public static float GetAndAccumulateValue(this Pointer<float> pointer, float x, ValueFunc<float, float, float> accumulator)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | x | Accumulator operand. |
ValueFunc<Single, Single, Single> | accumulator | A side-effect-free function of two arguments |
Returns
Type | Description |
---|---|
Single | The original value. |
Remarks
The function is applied with the current value as its first argument, and the given update as the second argument.
GetAndSetValue(Pointer<IntPtr>, IntPtr)
Sets a value located in the memory at the address specified by pointer to a specified value as an atomic operation.
Declaration
public static IntPtr GetAndSetValue(this Pointer<IntPtr> pointer, IntPtr update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
IntPtr | update | The value to which the memory is set. |
Returns
Type | Description |
---|---|
IntPtr | The original value that was in the memory before. |
GetAndSetValue(Pointer<Double>, Double)
Sets a value located in the memory at the address specified by pointer to a specified value as an atomic operation.
Declaration
public static double GetAndSetValue(this Pointer<double> pointer, double update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Double | update | The value to which the memory is set. |
Returns
Type | Description |
---|---|
Double | The original value in the memory. |
GetAndSetValue(Pointer<Int32>, Int32)
Sets a value located in the memory at the address specified by pointer to a specified value as an atomic operation.
Declaration
public static int GetAndSetValue(this Pointer<int> pointer, int update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Int32 | update | The value to which the memory is set. |
Returns
Type | Description |
---|---|
Int32 | The original value in the memory. |
GetAndSetValue(Pointer<Int64>, Int64)
Sets a value located in the memory at the address specified by pointer to a specified value as an atomic operation.
Declaration
public static long GetAndSetValue(this Pointer<long> pointer, long update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Int64 | update | The value to which the memory is set. |
Returns
Type | Description |
---|---|
Int64 | The original value in the memory. |
GetAndSetValue(Pointer<Single>, Single)
Sets a value located in the memory at the address specified by pointer to a specified value as an atomic operation.
Declaration
public static float GetAndSetValue(this Pointer<float> pointer, float update)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Single | update | The value to which the memory is set. |
Returns
Type | Description |
---|---|
Single | The original value in the memory. |
GetAndUpdateValue(Pointer<IntPtr>, Func<IntPtr, IntPtr>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static IntPtr GetAndUpdateValue(this Pointer<IntPtr> pointer, Func<IntPtr, IntPtr> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
Func<IntPtr, IntPtr> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
IntPtr | The original value. |
GetAndUpdateValue(Pointer<IntPtr>, ValueFunc<IntPtr, IntPtr>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static IntPtr GetAndUpdateValue(this Pointer<IntPtr> pointer, ValueFunc<IntPtr, IntPtr> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
ValueFunc<IntPtr, IntPtr> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
IntPtr | The original value. |
GetAndUpdateValue(Pointer<Double>, Func<Double, Double>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static double GetAndUpdateValue(this Pointer<double> pointer, Func<double, double> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Func<Double, Double> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Double | The original value. |
GetAndUpdateValue(Pointer<Double>, ValueFunc<Double, Double>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static double GetAndUpdateValue(this Pointer<double> pointer, ValueFunc<double, double> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
ValueFunc<Double, Double> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Double | The original value. |
GetAndUpdateValue(Pointer<Int32>, Func<Int32, Int32>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static int GetAndUpdateValue(this Pointer<int> pointer, Func<int, int> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Func<Int32, Int32> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int32 | The original value. |
GetAndUpdateValue(Pointer<Int32>, ValueFunc<Int32, Int32>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static int GetAndUpdateValue(this Pointer<int> pointer, ValueFunc<int, int> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
ValueFunc<Int32, Int32> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int32 | The original value. |
GetAndUpdateValue(Pointer<Int64>, Func<Int64, Int64>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static long GetAndUpdateValue(this Pointer<long> pointer, Func<long, long> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Func<Int64, Int64> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int64 | The original value. |
GetAndUpdateValue(Pointer<Int64>, ValueFunc<Int64, Int64>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static long GetAndUpdateValue(this Pointer<long> pointer, ValueFunc<long, long> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
ValueFunc<Int64, Int64> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int64 | The original value. |
GetAndUpdateValue(Pointer<Single>, Func<Single, Single>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static float GetAndUpdateValue(this Pointer<float> pointer, Func<float, float> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Func<Single, Single> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Single | The original value. |
GetAndUpdateValue(Pointer<Single>, ValueFunc<Single, Single>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the original value.
Declaration
public static float GetAndUpdateValue(this Pointer<float> pointer, ValueFunc<float, float> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
ValueFunc<Single, Single> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Single | The original value. |
IncrementValue(Pointer<IntPtr>)
Increments a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static IntPtr IncrementValue(this Pointer<IntPtr> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be incremented. |
Returns
Type | Description |
---|---|
IntPtr | The incremented value. |
IncrementValue(Pointer<Double>)
Increments a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static double IncrementValue(this Pointer<double> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be incremented. |
Returns
Type | Description |
---|---|
Double | The incremented value. |
IncrementValue(Pointer<Int32>)
Increments a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static int IncrementValue(this Pointer<int> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be incremented. |
Returns
Type | Description |
---|---|
Int32 | The incremented value. |
IncrementValue(Pointer<Int64>)
Increments a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static long IncrementValue(this Pointer<long> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be incremented. |
Returns
Type | Description |
---|---|
Int64 | The incremented value. |
IncrementValue(Pointer<Single>)
Increments a value located in the memory at the address specified by pointer and stores the result, as an atomic operation.
Declaration
public static float IncrementValue(this Pointer<float> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be incremented. |
Returns
Type | Description |
---|---|
Single | The incremented value. |
UpdateAndGetValue(Pointer<IntPtr>, Func<IntPtr, IntPtr>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static IntPtr UpdateAndGetValue(this Pointer<IntPtr> pointer, Func<IntPtr, IntPtr> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
Func<IntPtr, IntPtr> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
IntPtr | The updated value. |
UpdateAndGetValue(Pointer<IntPtr>, ValueFunc<IntPtr, IntPtr>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static IntPtr UpdateAndGetValue(this Pointer<IntPtr> pointer, ValueFunc<IntPtr, IntPtr> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | A pointer to a value to be modified. |
ValueFunc<IntPtr, IntPtr> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
IntPtr | The updated value. |
UpdateAndGetValue(Pointer<Double>, Func<Double, Double>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static double UpdateAndGetValue(this Pointer<double> pointer, Func<double, double> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
Func<Double, Double> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Double | The updated value. |
UpdateAndGetValue(Pointer<Double>, ValueFunc<Double, Double>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static double UpdateAndGetValue(this Pointer<double> pointer, ValueFunc<double, double> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | A pointer to a value to be modified. |
ValueFunc<Double, Double> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Double | The updated value. |
UpdateAndGetValue(Pointer<Int32>, Func<Int32, Int32>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static int UpdateAndGetValue(this Pointer<int> pointer, Func<int, int> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
Func<Int32, Int32> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int32 | The updated value. |
UpdateAndGetValue(Pointer<Int32>, ValueFunc<Int32, Int32>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static int UpdateAndGetValue(this Pointer<int> pointer, ValueFunc<int, int> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | A pointer to a value to be modified. |
ValueFunc<Int32, Int32> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int32 | The updated value. |
UpdateAndGetValue(Pointer<Int64>, Func<Int64, Int64>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static long UpdateAndGetValue(this Pointer<long> pointer, Func<long, long> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
Func<Int64, Int64> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int64 | The updated value. |
UpdateAndGetValue(Pointer<Int64>, ValueFunc<Int64, Int64>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static long UpdateAndGetValue(this Pointer<long> pointer, ValueFunc<long, long> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | A pointer to a value to be modified. |
ValueFunc<Int64, Int64> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Int64 | The updated value. |
UpdateAndGetValue(Pointer<Single>, Func<Single, Single>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static float UpdateAndGetValue(this Pointer<float> pointer, Func<float, float> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
Func<Single, Single> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Single | The updated value. |
UpdateAndGetValue(Pointer<Single>, ValueFunc<Single, Single>)
Atomically updates the value referenced by pointer with the results of applying the given function, returning the updated value.
Declaration
public static float UpdateAndGetValue(this Pointer<float> pointer, ValueFunc<float, float> updater)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | A pointer to a value to be modified. |
ValueFunc<Single, Single> | updater | A side-effect-free function |
Returns
Type | Description |
---|---|
Single | The updated value. |
VolatileRead(Pointer<IntPtr>)
Reads the value from the memory location identified by the pointer.
Declaration
public static IntPtr VolatileRead(this Pointer<IntPtr> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
IntPtr | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Boolean>)
Reads the value from the memory location identified by the pointer.
Declaration
public static bool VolatileRead(this Pointer<bool> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Boolean> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Boolean | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Byte>)
Reads the value from the memory location identified by the pointer.
Declaration
public static byte VolatileRead(this Pointer<byte> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Byte> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Byte | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Double>)
Reads the value from the memory location identified by the pointer.
Declaration
public static double VolatileRead(this Pointer<double> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Double | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Int16>)
Reads the value from the memory location identified by the pointer.
Declaration
public static short VolatileRead(this Pointer<short> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int16> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Int16 | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Int32>)
Reads the value from the memory location identified by the pointer.
Declaration
public static int VolatileRead(this Pointer<int> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Int32 | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Int64>)
Reads the value from the memory location identified by the pointer.
Declaration
public static long VolatileRead(this Pointer<long> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Int64 | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<SByte>)
Reads the value from the memory location identified by the pointer.
Declaration
public static sbyte VolatileRead(this Pointer<sbyte> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<SByte> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
SByte | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<Single>)
Reads the value from the memory location identified by the pointer.
Declaration
public static float VolatileRead(this Pointer<float> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
Single | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<UInt16>)
Reads the value from the memory location identified by the pointer.
Declaration
public static ushort VolatileRead(this Pointer<ushort> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UInt16> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
UInt16 | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<UInt32>)
Reads the value from the memory location identified by the pointer.
Declaration
public static uint VolatileRead(this Pointer<uint> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UInt32> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
UInt32 | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<UInt64>)
Reads the value from the memory location identified by the pointer.
Declaration
public static ulong VolatileRead(this Pointer<ulong> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UInt64> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
UInt64 | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileRead(Pointer<UIntPtr>)
Reads the value from the memory location identified by the pointer.
Declaration
public static UIntPtr VolatileRead(this Pointer<UIntPtr> pointer)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UIntPtr> | pointer | The pointer to read. |
Returns
Type | Description |
---|---|
UIntPtr | The value that was read. This value is the latest written by any processor in the computer, regardless of the number of processors or the state of processor cache. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
VolatileWrite(Pointer<IntPtr>, IntPtr)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<IntPtr> pointer, IntPtr value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<IntPtr> | pointer | The pointer to write. |
IntPtr | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Boolean>, Boolean)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<bool> pointer, bool value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Boolean> | pointer | The pointer to write. |
Boolean | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Byte>, Byte)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<byte> pointer, byte value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Byte> | pointer | The pointer to write. |
Byte | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Double>, Double)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<double> pointer, double value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Double> | pointer | The pointer to write. |
Double | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Int16>, Int16)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<short> pointer, short value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int16> | pointer | The pointer to write. |
Int16 | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Int32>, Int32)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<int> pointer, int value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int32> | pointer | The pointer to write. |
Int32 | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Int64>, Int64)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<long> pointer, long value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Int64> | pointer | The pointer to write. |
Int64 | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<SByte>, SByte)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<sbyte> pointer, sbyte value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<SByte> | pointer | The pointer to write. |
SByte | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<Single>, Single)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<float> pointer, float value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<Single> | pointer | The pointer to write. |
Single | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<UInt16>, UInt16)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<ushort> pointer, ushort value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UInt16> | pointer | The pointer to write. |
UInt16 | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<UInt32>, UInt32)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<uint> pointer, uint value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UInt32> | pointer | The pointer to write. |
UInt32 | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<UInt64>, UInt64)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<ulong> pointer, ulong value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UInt64> | pointer | The pointer to write. |
UInt64 | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
VolatileWrite(Pointer<UIntPtr>, UIntPtr)
Writes a value to the memory location identified by the pointer .
Declaration
public static void VolatileWrite(this Pointer<UIntPtr> pointer, UIntPtr value)
Parameters
Type | Name | Description |
---|---|---|
Pointer<UIntPtr> | pointer | The pointer to write. |
UIntPtr | value | The value to write. The value is written immediately so that it is visible to all processors in the computer. |
Remarks
On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.