Closed
Bug 621072
Opened 15 years ago
Closed 15 years ago
TM: Traces shouldn't bake in interruptFlags
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
| Tracking | Status | |
|---|---|---|
| blocking2.0 | --- | betaN+ |
People
(Reporter: billm, Assigned: billm)
References
Details
(Whiteboard: [cib-workers] [fixed-in-tracemonkey])
Attachments
(1 file, 1 obsolete file)
|
1.31 KB,
patch
|
igor
:
review+
|
Details | Diff | Splinter Review |
Since web workers can move from one thread to another, and the old thread may disappear, it isn't valid to bake &JS_THREAD_DATA(cx)->interruptFlags into traces.
| Assignee | ||
Updated•15 years ago
|
Assignee: general → wmccloskey
blocking2.0: --- → ?
| Assignee | ||
Comment 1•15 years ago
|
||
This is the simplest way to fix this.
Attachment #499433 -
Flags: review?(igor)
Comment 2•15 years ago
|
||
That's an empty patch :)
| Assignee | ||
Comment 3•15 years ago
|
||
It's a simple patch, but not that simple. I messed up when I split two changes apart.
Attachment #499433 -
Attachment is obsolete: true
Attachment #499437 -
Flags: review?(igor)
Attachment #499433 -
Flags: review?(igor)
Comment 4•15 years ago
|
||
I thought this was going to require an extra load per check, glad to see it doesn't!
Updated•15 years ago
|
blocking2.0: ? → betaN+
Whiteboard: [cib-workers]
Comment 5•15 years ago
|
||
Comment on attachment 499437 [details] [diff] [review]
updated patch
>From: Bill McCloskey <wmccloskey@mozilla.com>
>try: -p linux,linux64,win32
>
>diff --git a/js/src/jstracer.cpp b/js/src/jstracer.cpp
>--- a/js/src/jstracer.cpp
>+++ b/js/src/jstracer.cpp
>@@ -2345,17 +2345,22 @@ TraceRecorder::TraceRecorder(JSContext*
>
> if (fragment == fragment->root) {
> /*
> * We poll the operation callback request flag. It is updated asynchronously whenever
> * the callback is to be invoked. We can use w.nameImmpNonGC here as JIT-ed code is per
> * thread and cannot outlive the corresponding JSThreadData.
> */
> w.comment("begin-interruptFlags-check");
>- LIns* flagptr = w.nameImmpNonGC((void *) &JS_THREAD_DATA(cx)->interruptFlags);
>+#ifdef JS_THREADSAFE
>+ void *interrupt = (void*) &cx->runtime->interruptCounter;
>+#else
>+ void *interrupt = (void*) &JS_THREAD_DATA(cx)->interruptFlags;
>+#endif
Add fixme bug 621140 about per-compartment flag here.
Attachment #499437 -
Flags: review?(igor) → review+
| Assignee | ||
Comment 6•15 years ago
|
||
Whiteboard: [cib-workers] → [cib-workers] [fixed-in-tracemonkey]
| Assignee | ||
Comment 7•15 years ago
|
||
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•