At the end of step 7 of the SuspendThisAgent abstract operation the second argument to NotifyWaiter should be a waiterRecord (a Waiter Record) and not thisAgent (an agent signifier) according to the definition of NotifyWaiter.
The last sentence of step 7 reads:
The surrounding agent can only wake from suspension due to a timeout or due to another agent calling NotifyWaiter with arguments WL and thisAgent (i.e. via a call to Atomics.notify).
At the end of step 7 of the SuspendThisAgent abstract operation the second argument to NotifyWaiter should be a
waiterRecord
(a Waiter Record) and notthisAgent
(an agent signifier) according to the definition of NotifyWaiter.The last sentence of step 7 reads:
The surrounding agent can only wake from suspension due to a timeout or due to another agent calling NotifyWaiter with arguments WL and thisAgent (i.e. via a call to Atomics.notify).
The first sentence of NotifyWaiter says:
The abstract operation NotifyWaiter takes arguments WL (a WaiterList Record) and waiterRecord (a Waiter Record) and returns unused.