Skip to content

Commit

Permalink
squash! update DESIGN.md
Browse files Browse the repository at this point in the history
  • Loading branch information
bnoordhuis committed Jan 5, 2025
1 parent 2811490 commit 1fe0ec4
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ they are almost universally:
deliberate changes & known bugs
===============================

- Forking is no longer supported. `fork(2)` and threads don't go well together.
After the fork, only the calling thread remains; the V8 thread is gone and
likely left mutexes and other resources in an undefined state.
- `MiniRacer::Platform.set_flags! :single_threaded` still runs everything on
the same thread but is prone to crashes in Ruby < 3.4.0 due to a Ruby runtime
bug that clobbers thread-local variables.

- The `Isolate` class is gone. Maintaining a one-to-many relationship between
isolates and contexts in a multi-threaded environment had a bad cost/benefit
Expand All @@ -66,6 +66,8 @@ deliberate changes & known bugs
- The `marshal_stack_depth` argument is still accepted but ignored; it's no
longer necessary.

- The `ensure_gc_after_idle` argument is a no-op in `:single_threaded` mode.

- The `timeout` argument no longer interrupts long-running Ruby code. Killing
or interrupting a Ruby thread executing arbitrary code is fraught with peril.

Expand Down

0 comments on commit 1fe0ec4

Please sign in to comment.