Commit f5ec572
committed
ZJIT: Remove NoEPEscape patch points after invalidation
Previously, rb_zjit_invalidate_no_ep_escape used .get() to look up
patch points, leaving them in the map after patching. This caused
every subsequent eval call to re-patch the same PatchPoints, each
requiring mprotect syscalls to toggle W^X permissions. In railsbench,
this dominated CPU time with thousands of redundant mprotect calls.
Change .get() to .remove() so patch points are removed after being
patched, matching the pattern used by CME invalidation.1 parent c784bfc commit f5ec572
1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
215 | | - | |
| 215 | + | |
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
| |||
0 commit comments