Index: include/v8-platform.h |
diff --git a/include/v8-defaults.h b/include/v8-platform.h |
similarity index 59% |
copy from include/v8-defaults.h |
copy to include/v8-platform.h |
index b55c07fbad86efa439d77bfd05b344c1d6864d56..cf264d60e817855e048bdc4cde0578163225fda7 100644 |
--- a/include/v8-defaults.h |
+++ b/include/v8-platform.h |
@@ -25,24 +25,51 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-#ifndef V8_V8_DEFAULTS_H_ |
-#define V8_V8_DEFAULTS_H_ |
+#ifndef V8_V8_PLATFROM_H_ |
+#define V8_V8_PLATFORM_H_ |
#include "v8.h" |
+namespace v8 { |
+ |
/** |
- * Default configuration support for the V8 JavaScript engine. |
+ * A Task represents a unit of work. |
*/ |
-namespace v8 { |
+class Task { |
+ public: |
+ virtual ~Task() {} |
-V8_DEPRECATED("Use ResourceConstraints::ConfigureDefaults instead", |
- bool V8_EXPORT ConfigureResourceConstraintsForCurrentPlatform( |
- ResourceConstraints* constraints)); |
+ virtual void Run() = 0; |
+}; |
+ |
+/** |
+ * V8 Platform abstraction layer. |
+ * |
+ * The embedder has to provide an implementation of this interface before |
+ * initializing the rest of V8. |
+ */ |
+class Platform { |
+ public: |
+ /** |
+ * Schedules a task to be invoked on a background thread. |task_is_slow| |
+ * indicates that the task will run a long time. The Platform implementation |
+ * takes ownership of |task|. There is no guarantee about order of execution |
+ * of tasks wrt order of scheduling, nor is there a guarantee about the |
+ * thread the task will be run on. |
+ */ |
+ virtual void CallOnBackgroundThread(Task* task, bool task_is_slow) = 0; |
+ /** |
+ * Schedules a task to be invoked on a foreground thread wrt a specific |
+ * |isolate|. Tasks posted for the same isolate should be execute in order of |
+ * scheduling. The definition of "foreground" is opaque to V8. |
+ */ |
+ virtual void CallOnForegroundThread(Isolate* isolate, Task* task) = 0; |
-V8_DEPRECATED("Use ResourceConstraints::ConfigureDefaults instead", |
- bool V8_EXPORT SetDefaultResourceConstraintsForCurrentPlatform()); |
+ protected: |
+ virtual ~Platform() {} |
+}; |
} // namespace v8 |
-#endif // V8_V8_DEFAULTS_H_ |
+#endif // V8_V8_PLATFORM_H_ |