Index: src/v8threads.h |
=================================================================== |
--- src/v8threads.h (revision 981) |
+++ src/v8threads.h (working copy) |
@@ -87,19 +87,31 @@ |
}; |
+// The ContextSwitcher thread is used to schedule regular preemptions to |
+// multiple running V8 threads. Generally it is needed to call StartPreemption |
Erik Corry
2008/12/17 14:30:07
"it is necessary"
iposva
2008/12/17 17:39:24
Done.
|
+// if there is more than one thread running. If not a single JavaScript can |
Erik Corry
2008/12/17 14:30:07
"If not, a single JavaScript thread can"
iposva
2008/12/17 17:39:24
Done.
|
+// take full control of V8 and not allow other threads to run. |
class ContextSwitcher: public Thread { |
public: |
- void Run(); |
+ // Set the preemption interval for the ContextSwitcher thread. |
static void StartPreemption(int every_n_ms); |
+ |
+ // Stop sending preemption requests to threads. |
static void StopPreemption(); |
+ |
+ // Preempted thread needs to calls back to the ContextSwitcher to acknowlege |
Erik Corry
2008/12/17 14:30:07
"to call back"
iposva
2008/12/17 17:39:24
Done.
|
+ // the handling of a preemption request. |
static void PreemptionReceived(); |
+ |
private: |
explicit ContextSwitcher(int every_n_ms); |
- void WaitForPreemption(); |
- void Stop(); |
- Semaphore* preemption_semaphore_; |
+ |
+ void Run(); |
+ |
bool keep_going_; |
int sleep_ms_; |
+ |
+ static ContextSwitcher* singleton_; |
}; |
} } // namespace v8::internal |