1. 19 Mar, 2018 1 commit
  2. 02 Aug, 2017 1 commit
  3. 26 May, 2017 1 commit
  4. 04 Jan, 2017 1 commit
  5. 03 Jan, 2017 3 commits
  6. 11 Nov, 2016 1 commit
  7. 27 Oct, 2016 1 commit
  8. 14 Oct, 2016 1 commit
  9. 13 Oct, 2016 2 commits
  10. 10 May, 2016 1 commit
  11. 19 Nov, 2015 1 commit
    • mlippautz's avatar
      Fix protocol for aborting and waiting for cancelable tasks. · a698fd84
      mlippautz authored
      Since {CancelAndWait} blocks on the tasks that are still present in the internal
      hashmap, we are not allowed to remove the task upon trying to cancel it using
      {TryAbort}.
      
      The previous implementation suffered from a bug where:
      1) The task was created and handed over to the platform.
      2) The task was started by the platform, setting it to running state.
      3) We called {TryAbort}, effectively removing it from the manager, but failing
         to cancel (as it was already running)
      4) All tasks finished running, indicating this with their own semaphore.
      5) The platform was stuck (scheduling) before destroying the task.
      6) Main thread finished its work, waiting for all the necessary tasks, and the
         isolate terminated.
      7) The platform destroyed the task, calling the destructor, calling into an
         already freed isolate.
      
      BUG=chromium:524425
      LOG=N
      
      Review URL: https://codereview.chromium.org/1460763004
      
      Cr-Commit-Position: refs/heads/master@{#32118}
      a698fd84
  12. 14 Nov, 2015 1 commit
    • mlippautz's avatar
      Add {CancelableTaskManager} to handle {Cancelable} concurrent tasks. · 60e7ea8a
      mlippautz authored
      This change binds each {Cancelable} task to a so-called {CancelableTaskManager},
      which is then used to handle concurrent cancelation as well as synchronizing
      shutdown for already running tasks.  Since ownership of tasks is transferred to
      the platform executing a task (destructor), handling in the manager uses integer
      ids. Note that this also mitigates (modulo integer size) the ABA problem.
      
      All handling of {Cancelable} tasks is now encapsulated into the corresponding
      manager, which is instantiated for each isolate.
      
      R=hpayer@chromium.org
      BUG=chromium:524425
      LOG=N
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel;tryserver.v8:v8_mac64_asan_rel
      
      Review URL: https://codereview.chromium.org/1409993012
      
      Cr-Commit-Position: refs/heads/master@{#31997}
      60e7ea8a
  13. 01 Sep, 2015 1 commit
  14. 20 Aug, 2015 1 commit
  15. 30 Jul, 2015 1 commit
  16. 20 Jul, 2015 1 commit