Dominik Inführ b689f838ba [heap] Fix --gc-interval command line flag
This CL fixes the --gc-interval command line flag which was
supposed to trigger GCs more frequently. Since this was not really
happening, we might now trigger GCs in more locations and thus
might flush out some pre-existing issues.

In the linked bug --gc-interval was not triggering GCs because
AllocateRawWith() was invoking AllocateRaw() twice without performing
a GC in-between. Assuming allocation_timeout_ was 1 before the first
call to AllocateRaw(), the first call to AllocateRaw() decreased the
counter to 0. AllocateRawWith() then invokes AllocateRaw() again at
the beginning of AllocateRawWithLightRetrySlowPath(). In the second
call allocation_timeout_ is then 0, AllocateRaw() therefore assumes
the allocation timeout is disabled and the second allocation
subsequently succeeds.

This CL fixes this by turning allocation_timeout_ into
base::Optional<int>. With this change both invocations of
AllocateRaw() observe the allocation timeout as enabled and both
invocations let the allocation fail because of this.

Bug: 346197733
Change-Id: Ic5987a9fb83320a145b04271e5631e50410c3572
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5613990
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94357}
2024-06-11 07:36:09 +00:00
2024-06-06 09:14:14 +00:00
2024-05-07 10:37:45 +00:00
2019-05-15 12:06:15 +00:00
2024-06-06 13:18:55 +00:00
2024-05-22 13:26:56 +00:00
2024-06-10 19:08:21 +00:00
2017-07-28 13:39:24 +00:00
2021-08-24 10:39:33 +00:00
2024-05-06 09:03:21 +00:00
2024-05-06 09:03:21 +00:00
2022-08-04 08:53:02 +00:00
2024-01-11 08:57:35 +00:00
2024-06-11 01:10:31 +00:00
2024-06-11 05:02:42 +00:00
2020-10-20 22:12:28 +00:00
2020-04-24 19:19:36 +00:00
2022-09-13 07:54:54 +00:00
2021-08-16 13:05:19 +00:00
2021-09-08 01:38:52 +00:00
2023-01-23 17:07:21 +00:00
2023-01-23 17:07:21 +00:00
2024-05-17 09:16:10 +00:00

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://v8.dev/docs

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned at v8.dev/docs/contribute.

S
Description
The bare minimum headers from v8 required to build sandstorm from source.
https://chromium.googlesource.com/v8/v8.git
Readme BSD-3-Clause
931 MiB
0 Stars 1 Watchers 0 Forks
Languages
Markdown 100%