1. 01 Jul, 2015 1 commit
  2. 25 Jun, 2015 1 commit
    • binji's avatar
      Fix cluster-fuzz regression when getting message from Worker · 28b0129b
      binji authored
      The issue is that Worker.prototype.terminate was deleting the C++ Worker
      object, and then Worker.prototype.getMessage was trying to read messages from
      the queue.
      
      The simplest solution is to keep workers in a zombie state when they have been
      terminated. They won't be reaped until Shell::CleanupWorkers is called.
      
      I've also fixed some threading issues with Workers:
      
      * Workers can be created by another Worker, so the Shell::workers_ variable
      must be protected by a mutex.
      
      * An individual Worker can typically only be accessed by the isolate that
      created it, but the main thread can always terminate it, so the Worker::state_
      must be accessed in a thread-safe way.
      
      BUG=chromium:504136
      R=jochen@chromium.org
      LOG=n
      
      Review URL: https://codereview.chromium.org/1208733002
      
      Cr-Commit-Position: refs/heads/master@{#29306}
      28b0129b
  3. 22 Jun, 2015 1 commit
    • binji's avatar
      Add d8 API for spawning function on a new thread (Third try) · 001ee86e
      binji authored
      This API closely matches the Worker API. The differences:
      
      1) The argument to the Worker constructor is a function to run, not a script.
      2) Receiving a message from a worker is a synchronous API (as there is no event
      loop).
      
      The serialization done here is not robust as the real DOM implementation. For
      example, recursive data structures or otherwise duplicated objects are not
      allowed.
      
      BUG=chromium:497295
      LOG=n
      
      Review URL: https://codereview.chromium.org/1192923002
      
      Cr-Commit-Position: refs/heads/master@{#29195}
      001ee86e
  4. 19 Jun, 2015 2 commits
  5. 18 Jun, 2015 2 commits