Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: WebAssembly/threads
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: merge-spec
Choose a base ref
Loading
...
head repository: WebAssembly/threads
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Checking mergeability… Don’t worry, you can still create the pull request.
  • 9 commits
  • 19 files changed
  • 7 contributors

Commits on Dec 2, 2021

  1. Configuration menu
    Copy the full SHA
    b438715 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2022

  1. Update description of memory.atomic.wait64 (#190)

    Now that JS `Atomics.wait` natively supports BigInt64Array,
    `memory.atomic.wait64` can be described directly in terms of `Atomic.wait`.
    tlively authored Sep 7, 2022
    Configuration menu
    Copy the full SHA
    fa319c9 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2022

  1. Soften language for notify on unshared memories (#191)

    Since #144, we've specified that `memory.atomic.notify` is allowed to be executed on unshared memories, but always returns 0 since it is impossible for there to be anything waiting on an unshared memory since all variations of the wait instructions in Wasm and JS trap or throw exceptions on unshared memories. However, I realized recently that there is no technical reason why [`Atomics.waitAsync`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics/waitAsync) shouldn't be able to wait on an unshared memory. Because `Atomics.waitAsync` returns a promise rather than blocking, it can in principle be used to synchronize between multiple asynchronous tasks in flight concurrently in the same JS context, and now that [JSPI](https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md) is becoming more real, this actually might be a useful thing to do. In particular `Atomics.waitAsync` could be used to build suspending versions of mutexes and condition variables to synchronize between threads running as different asynchronous tasks within a single JS context.
    
    Actually realizing this vision of asynchronous threading with JSPI on top of `Atomics.waitAsync` requires changes on the JS side to allow `Atomics.waitAsync` and `Atomics.notify` to be used on unshared ArrayBuffers, but in the meantime we can prepare for that change on the Wasm side by softening the language stating that `memory.atomic.notify` unconditionally returns 0 for unshared memories.
    tlively authored Sep 13, 2022
    Configuration menu
    Copy the full SHA
    7fb4187 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2022

  1. [interpreter] implement atomic.fence, add wait/notify edge case tests (

    …#192)
    
    * implement atomic.fence, add wait/notify edge case tests
    
    * Update interpreter/exec/eval.ml
    
    Co-authored-by: Andreas Rossberg <rossberg@dfinity.org>
    conrad-watt and rossberg authored Oct 11, 2022
    Configuration menu
    Copy the full SHA
    3f16038 View commit details
    Browse the repository at this point in the history
  2. Add edge case tests for cmpxchg (#171)

    While implementing wasm-threading in JavaScriptCore, we found that this edge cases are not tested in spec-tests.
    To clarify cmpxchg behavior, this patch adds them to spec-tests.
    Constellation authored Oct 11, 2022
    Configuration menu
    Copy the full SHA
    8e1a7de View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2022

  1. Configuration menu
    Copy the full SHA
    cc01bf0 View commit details
    Browse the repository at this point in the history

Commits on May 30, 2023

  1. [interpreter] implement atomic.wait and atomic.notify (#194)

    * implement wait and notify
    
    Co-authored-by: Andreas Rossberg <rossberg@dfinity.org>
    conrad-watt and rossberg authored May 30, 2023
    Configuration menu
    Copy the full SHA
    09f2831 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. Merge branch 'master'

    rossberg committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    44056de View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2024

  1. Fix typo in Compare Exchange table (#227)

    Prior to this commit there was a copy/paste typo in the Compare Exchange table wherein a 16-bit operation is said in one column to be 8-bit (pasted from the line above).
    
    This commit fixes the typo so that it reflects the correct number of bits.
    jemc authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    b2567bf View commit details
    Browse the repository at this point in the history
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.