forked from LeenkxTeam/LNXSDK
Update
This commit is contained in:
99
Kha/Tools/windows_x64/std/js/lib/Atomics.hx
Normal file
99
Kha/Tools/windows_x64/std/js/lib/Atomics.hx
Normal file
@ -0,0 +1,99 @@
|
||||
package js.lib;
|
||||
|
||||
private typedef E<A, B> = haxe.extern.EitherType<A, B>;
|
||||
private typedef IntTypedArray = E<Int8Array, E<Uint8Array, E<Int16Array, E<Uint16Array, E<Int32Array, Uint32Array>>>>>;
|
||||
|
||||
/**
|
||||
The Atomics object provides atomic operations as static methods. They are used with SharedArrayBuffer and ArrayBuffer objects.
|
||||
|
||||
Documentation [Atomics](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics/contributors.txt), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
|
||||
**/
|
||||
@:native("Atomics")
|
||||
extern class Atomics {
|
||||
/**
|
||||
Adds the provided value to the existing value at the specified index of the array.
|
||||
Returns the old value at that index.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function add(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
|
||||
/**
|
||||
Computes a bitwise AND on the value at the specified index of the array with the provided value.
|
||||
Returns the old value at that index.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function and(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
|
||||
/**
|
||||
Stores a value at the specified index of the array, if it equals a value.
|
||||
Returns the old value.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function compareExchange(typedArray:IntTypedArray, index:Int, expectedValue:Int, replacementValue:Int):Int;
|
||||
|
||||
/**
|
||||
Stores a value at the specified index of the array.
|
||||
Returns the old value.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function exchange(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
|
||||
/**
|
||||
An optimization primitive that can be used to determine whether to use locks or atomic operations.
|
||||
Returns `true` if an atomic operation on arrays of the given element size will be implemented using a hardware atomic operation (as opposed to a lock). Experts only.
|
||||
**/
|
||||
static function isLockFree(size:Int):Bool;
|
||||
|
||||
/**
|
||||
Returns the value at the specified index of the array.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function load(typedArray:IntTypedArray, index:Int):Int;
|
||||
|
||||
/**
|
||||
Notifies agents that are waiting on the specified index of the array.
|
||||
Returns the number of agents that were notified.
|
||||
**/
|
||||
static function notify(typedArray:IntTypedArray, index:Int, ?count:Int):Int;
|
||||
|
||||
/**
|
||||
Computes a bitwise OR on the value at the specified index of the array with the provided value.
|
||||
Returns the old value at that index.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function or(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
|
||||
/**
|
||||
Stores a value at the specified index of the array.
|
||||
Returns the value.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function store(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
|
||||
/**
|
||||
Subtracts a value at the specified index of the array.
|
||||
Returns the old value at that index.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function sub(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
|
||||
/**
|
||||
Verifies that the specified index of the array still contains a value and sleeps awaiting or times out.
|
||||
Returns either "ok", "not-equal", or "timed-out". If waiting is not allowed in the calling agent then it throws an Error exception.
|
||||
Most browsers will not allow wait() on the browser's main thread.)
|
||||
**/
|
||||
static function wait(typedArray:Int32Array, index:Int, value:Int, ?timeout:Int):WaitValue;
|
||||
|
||||
/**
|
||||
Computes a bitwise XOR on the value at the specified index of the array with the provided value.
|
||||
Returns the old value at that index.
|
||||
This atomic operation guarantees that no other write happens until the modified value is written back.
|
||||
**/
|
||||
static function xor(typedArray:IntTypedArray, index:Int, value:Int):Int;
|
||||
}
|
||||
|
||||
enum abstract WaitValue(String) {
|
||||
var OK = "ok";
|
||||
var NotEqual = "not-equal";
|
||||
var TimedOut = "timed-out";
|
||||
}
|
||||
Reference in New Issue
Block a user