Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2019 February 15

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Wait помимо всего возвращает ok и not-equal
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Если возвращает все оки, то считает правильно
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Если нет - уже всякая дичь возвращается
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Эта строка сразу проходит, если this.lock[0] !== LOCKED
not-equal возвращает, когда сразу выходит, вот в таком случае
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
ok когда подождал, и разбудили
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Так смысл в том, что подождал-разбудили меньше чем общее кол-во итераций
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
Какое общее количество итераций?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Nick
Какое общее количество итераций?
охрана отмена, то я еще таймаута добавил а их посчитать забыл
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
Там, кстати, проблема сейчас в том, что между Atomics.wait() и Atomics.store() в enter() нет критической секции, поэтому оба потока могут пройти wait с not-equal, и потом оба поменять значение на LOCKED.
В качестве проверки можно вместо store в enter() написать
if (Atomics.exchange(this.buf, 0, LOCKED) === LOCKED) console.log('was already locked');
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
По идее надо там какой-нибудь compareExchange использовать
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Да, @belochub похоже на то, сейчас попробую
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Так результат получше, но промежуточный результат тоже !==
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
{ mutex: Mutex { lock: Int32Array [ 1 ], owner: false },
 point: Point { data: Int32Array [ 0, 0 ] } }
{ point: Point { data: Int32Array [ 109487, 109117 ] } }
{ point: Point { data: Int32Array [ 0, 0 ] } }
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
За 2 миллиона телодвижений на 370 убежало вправо
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
Потому что там на чтение тоже надо критическую секцию
источник

N

Nick in NodeUA - JavaScript and Node.js in Ukraine
Если там console.dir({ point }) обернуть в mutex.enter()/mutex.leave(), то все правильно показывает
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
@belochub Да, все ок, спасибо!
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
источник
2019 February 16

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
первый запрос отправляю с помощью node-fetch, второй с postman, первый завершается со статусом canceled, с чем это может быть связанно?
источник