1. 19 Mar, 2019 1 commit
    • Peter Marshall's avatar
      [platform] Implement delayed tasks in the default worker runner · da66158f
      Peter Marshall authored
      This was unimplemented but is needed for Perfetto which posts delayed
      tasks on worker threads e.g. drain the trace buffer into a file every x
      seconds.
      
      This is implemented by adding a second queue which holds the delayed
      tasks in chronological order of 'next-to-execute'. We use an
      std::multimap for the queue so that we can easily get the next delayed
      task with begin().
      
      The implementation will move delayed tasks into the main task queue
      when their deadline expires.
      
      Drive-by cleanup of the runner destructor which can just use = default.
      
      Bug: v8:8339
      
      Change-Id: I3629c5d6e15ced2fc47eb1b7519a2dbbf8461fce
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521114
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60320}
      da66158f
  2. 11 Feb, 2019 1 commit
  3. 12 Oct, 2018 1 commit
  4. 28 Sep, 2018 1 commit
  5. 20 Jul, 2018 1 commit
  6. 30 Apr, 2018 2 commits
  7. 26 Mar, 2018 1 commit
  8. 20 Mar, 2018 1 commit
    • Clemens Hammacher's avatar
      [platform] Use condition variable instead of semaphore · 78f88ef0
      Clemens Hammacher authored
      The MessageLoopBehavior might change over time: Sometimes we want to
      wait because wasm background compilation is going on, sometimes we
      don't. This makes the semaphore go out of sync with the task queue (we
      always notify it when a new task is scheduled, but we only sometimes
      wait on it).
      Using a condition variable instead of a semaphore avoids this problem.
      
      R=ahaas@chromium.org
      
      Change-Id: Ib9850efc634f5988d3f824895b6566bd76475985
      Reviewed-on: https://chromium-review.googlesource.com/969122Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52057}
      78f88ef0
  9. 01 Mar, 2018 2 commits
  10. 21 Dec, 2017 1 commit
  11. 15 Nov, 2017 1 commit
    • Andreas Haas's avatar
      Reland "[platform] Implement TaskRunners in the DefaultPlatform" · 8a1bafaf
      Andreas Haas authored
      There was a data race in the access of the foreground_task_runner_map_.
      I protect each access to foreground_task_runner_map_ with a lock now.
      
      Original change's description:
      > [platform] Implement TaskRunners in the DefaultPlatform
      >
      > This CL implements the TaskRunners in the DefaultPlatform which has been
      > added recently to the platform API. In addition I changed how task
      > posting works on the DefaultPlatform.
      >
      > With this implementation the DefaultPlatform keeps one
      > DefaultForegroundTaskRunner per isolate, plus one
      > DefaultBackgroundTaskRunner. The DefaultPlatform owns these TaskRunners
      > with a shared_ptr, which is also shared with any caller of
      > GetForegroundTaskRunner or GetBackgroundTaskrunner.
      >
      > This CL moves the task management from the DefaultPlatform to the
      > TaskRunners.  The DefaultForegroundTaskRunner owns and manages the the
      > task queue, the delayed task  queue, and the idle task queue. The
      > DefaultBackgroundTaskRunner owns the WorkerThread pool and the
      > background task queue.
      >
      > In addition changed many Task* to std::unique_ptr<Task> to document task
      > ownership.
      >
      > R=rmcilroy@chromium.org
      >
      > Change-Id: Ib9a01f1f45e5b48844a37d801f884210ec3f6c27
      > Reviewed-on: https://chromium-review.googlesource.com/753583
      > Commit-Queue: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49354}
      
      Change-Id: Iddccdb07bde1a799815ec6ed6af37082df4987c7
      Reviewed-on: https://chromium-review.googlesource.com/770970
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49379}
      8a1bafaf
  12. 14 Nov, 2017 3 commits
    • Michael Achenbach's avatar
      Revert "[platform] Implement TaskRunners in the DefaultPlatform" · c56cff23
      Michael Achenbach authored
      This reverts commit 8de2e6db.
      
      Reason for revert: Suspect for:
      https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/24237
      https://build.chromium.org/p/client.v8/builders/V8%20Win64/builds/20896
      
      Original change's description:
      > [platform] Implement TaskRunners in the DefaultPlatform
      > 
      > This CL implements the TaskRunners in the DefaultPlatform which has been
      > added recently to the platform API. In addition I changed how task
      > posting works on the DefaultPlatform.
      > 
      > With this implementation the DefaultPlatform keeps one
      > DefaultForegroundTaskRunner per isolate, plus one
      > DefaultBackgroundTaskRunner. The DefaultPlatform owns these TaskRunners
      > with a shared_ptr, which is also shared with any caller of
      > GetForegroundTaskRunner or GetBackgroundTaskrunner.
      > 
      > This CL moves the task management from the DefaultPlatform to the
      > TaskRunners.  The DefaultForegroundTaskRunner owns and manages the the
      > task queue, the delayed task  queue, and the idle task queue. The
      > DefaultBackgroundTaskRunner owns the WorkerThread pool and the
      > background task queue.
      > 
      > In addition changed many Task* to std::unique_ptr<Task> to document task
      > ownership.
      > 
      > R=​rmcilroy@chromium.org
      > 
      > Change-Id: Ib9a01f1f45e5b48844a37d801f884210ec3f6c27
      > Reviewed-on: https://chromium-review.googlesource.com/753583
      > Commit-Queue: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49354}
      
      TBR=rmcilroy@chromium.org,ahaas@chromium.org
      
      Change-Id: I6c381915a2cae8ea1a0d21d6cfa6e797ccd2d947
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/768748Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49357}
      c56cff23
    • Andreas Haas's avatar
      [platform] Implement TaskRunners in the DefaultPlatform · 8de2e6db
      Andreas Haas authored
      This CL implements the TaskRunners in the DefaultPlatform which has been
      added recently to the platform API. In addition I changed how task
      posting works on the DefaultPlatform.
      
      With this implementation the DefaultPlatform keeps one
      DefaultForegroundTaskRunner per isolate, plus one
      DefaultBackgroundTaskRunner. The DefaultPlatform owns these TaskRunners
      with a shared_ptr, which is also shared with any caller of
      GetForegroundTaskRunner or GetBackgroundTaskrunner.
      
      This CL moves the task management from the DefaultPlatform to the
      TaskRunners.  The DefaultForegroundTaskRunner owns and manages the the
      task queue, the delayed task  queue, and the idle task queue. The
      DefaultBackgroundTaskRunner owns the WorkerThread pool and the
      background task queue.
      
      In addition changed many Task* to std::unique_ptr<Task> to document task
      ownership.
      
      R=rmcilroy@chromium.org
      
      Change-Id: Ib9a01f1f45e5b48844a37d801f884210ec3f6c27
      Reviewed-on: https://chromium-review.googlesource.com/753583
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49354}
      8de2e6db
    • Andreas Haas's avatar
      [cleanup] use unique_ptr for the DefaultPlatform · ffee558e
      Andreas Haas authored
      With this CL, {CreateDefaultPlatform} returns a unique_ptr to indicate
      that the caller owns the returned memory. We had several memory leaks
      where the memory of the DefaultPlatform did not get deallocated.
      
      In addition, the {TracingController} of the {DefaultPlatform} also gets
      received as a unique_ptr. Thereby we document that the {DefaultPlatform}
      takes ownership of the {TracingController}. Note that the memory of the
      {TracingController} was already owned by the {DefaultPlatform}, but it
      was not documented in the interface, and it was used incorrectly in
      tests.
      
      This CL fixes the asan issues in 
      https://chromium-review.googlesource.com/c/v8/v8/+/753583	
      ([platform] Implement TaskRunners in the DefaultPlatform)
      
      R=rmcilroy@chromium.org
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I0d1a6d3b22bb8289dc050b1977e4f58381cec675
      Reviewed-on: https://chromium-review.googlesource.com/755033Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49349}
      ffee558e
  13. 18 Oct, 2017 1 commit
  14. 13 Oct, 2017 1 commit
  15. 30 Aug, 2017 1 commit
  16. 03 Jul, 2017 1 commit
    • Jochen Eisinger's avatar
      Reland "Switch tracing to use v8::TracingController" · cc59f8b1
      Jochen Eisinger authored
      Original change's description:
      > Switch tracing to use v8::TracingController
      >
      > BUG=v8:6511
      > R=fmeawad@chromium.org
      >
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7
      > Reviewed-on: https://chromium-review.googlesource.com/543144
      > Commit-Queue: Jochen Eisinger <jochen@chromium.org>
      > Reviewed-by: Fadi Meawad <fmeawad@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46307}
      
      BUG=v8:6511
      TBR=fmeawad@chromium.org
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel
      Change-Id: Ide32b409248dfd466e7c0bae1d8ae61d6a955d98
      Reviewed-on: https://chromium-review.googlesource.com/558865
      Commit-Queue: Jochen Eisinger <jochen@chromium.org>
      Reviewed-by: 's avatarJochen Eisinger <jochen@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46381}
      cc59f8b1
  17. 29 Jun, 2017 2 commits
  18. 26 Jun, 2017 1 commit
  19. 22 Jun, 2017 1 commit
  20. 26 May, 2017 1 commit
  21. 10 May, 2017 3 commits
  22. 09 May, 2017 1 commit
    • Michael Achenbach's avatar
      Revert "Revert "Revert "Introducing an event loop mechanism for d8.""" · 02595c60
      Michael Achenbach authored
      This reverts commit 7dcc8eff.
      
      Reason for revert: Some flakes still (see comments) and breaks predictable testing:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20predictable/builds/11452
      
      Original change's description:
      > Revert "Revert "Introducing an event loop mechanism for d8.""
      > 
      > This reverts commit f7c25da6.
      > 
      > Reason for revert: Fixed
      > 
      > Original change's description:
      > > Revert "Introducing an event loop mechanism for d8."
      > > 
      > > This reverts commit de964dbe.
      > > 
      > > Reason for revert:
      > > https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958
      > > 
      > > Original change's description:
      > > > Introducing an event loop mechanism for d8.
      > > > 
      > > > This mechanism ensures APIs like wasm async complete their work, 
      > > > without requiring use of natives (%APIs).
      > > > 
      > > > The mechanism is similar to the one used in content_shell,
      > > > which should allow us to easily port tests in that environment.
      > > > 
      > > > Review-Url: https://codereview.chromium.org/2842843005
      > > > Cr-Original-Commit-Position: refs/heads/master@{#44908}
      > > > Bug: 
      > > > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344
      > > > Reviewed-on: https://chromium-review.googlesource.com/494968
      > > > Commit-Queue: Mircea Trofin <mtrofin@google.com>
      > > > Reviewed-by: Jochen Eisinger <jochen@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#45165}
      > > 
      > > TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org
      > > NOPRESUBMIT=true
      > > NOTREECHECKS=true
      > > NOTRY=true
      > > 
      > > Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f
      > > Reviewed-on: https://chromium-review.googlesource.com/498630
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#45166}
      > 
      > TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > 
      > Change-Id: Ic3c782e918326e291a6cb9bb349c609e9a340b09
      > Reviewed-on: https://chromium-review.googlesource.com/498430
      > Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
      > Commit-Queue: Mircea Trofin <mtrofin@google.com>
      > Cr-Commit-Position: refs/heads/master@{#45172}
      
      TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Change-Id: I21ffba7141db0bfb4a3275b6e1bf4fb399800ed2
      Reviewed-on: https://chromium-review.googlesource.com/500128Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45177}
      02595c60
  23. 08 May, 2017 3 commits
  24. 05 May, 2017 1 commit
  25. 17 Mar, 2017 1 commit
  26. 07 Mar, 2017 1 commit
  27. 03 Jan, 2017 1 commit
  28. 10 Oct, 2016 1 commit
  29. 27 Sep, 2016 3 commits