Closed
Bug 621072
Opened 14 years ago
Closed 14 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
(Blocks 1 open bug)
Details
(Whiteboard: [cib-workers] [fixed-in-tracemonkey])
Attachments
(1 file, 1 obsolete file)
(deleted),
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•14 years ago
|
Assignee: general → wmccloskey
blocking2.0: --- → ?
Assignee | ||
Comment 1•14 years ago
|
||
This is the simplest way to fix this.
Attachment #499433 -
Flags: review?(igor)
Comment 2•14 years ago
|
||
That's an empty patch :)
Assignee | ||
Comment 3•14 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•14 years ago
|
||
I thought this was going to require an extra load per check, glad to see it doesn't!
Updated•14 years ago
|
blocking2.0: ? → betaN+
Whiteboard: [cib-workers]
Comment 5•14 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•14 years ago
|
||
Whiteboard: [cib-workers] → [cib-workers] [fixed-in-tracemonkey]
Assignee | ||
Comment 7•14 years ago
|
||
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•