summaryrefslogtreecommitdiff
path: root/cli/web_worker.rs
AgeCommit message (Collapse)Author
2020-11-26refactor(cli): reorganize main.rs and split workers (#8495)Bartek Iwańczuk
Factored out "init_v8_flags", "init_logger" and "get_subcommand" from "main" function. Also "Worker" was removed in favor of moving logic to "MainWorker" and "WebWorker" respectively.
2020-09-28refactor: move op state registration to workers (#7696)Bartek Iwańczuk
2020-09-26refactor: combine MainWorker::new and MainWorker::create (#7693)Bartek Iwańczuk
* combine MainWorker::new and MainWorker::create * remove compiler_starts fields * make op_state types explicit for readability
2020-09-21refactor: use futures and serde_json from deno_core (#7614)Bartek Iwańczuk
2020-09-21chore: add copyright (#7593)tokiedokie
2020-09-20refactor: remove CliState, use OpState, add CliModuleLoader (#7588)Bartek Iwańczuk
- remove "CliState.workers" and "CliState.next_worker_id", instead store them on "OpState" using type aliases. - remove "CliState.global_timer" and "CliState.start_time", instead store them on "OpState" using type aliases. - remove "CliState.is_internal", instead pass it to Worker::new - move "CliState::permissions" to "OpState" - move "CliState::main_module" to "OpState" - move "CliState::global_state" to "OpState" - move "CliState::check_unstable()" to "GlobalState" - change "cli_state()" to "global_state()" - change "deno_core::ModuleLoader" trait to pass "OpState" to callbacks - rename "CliState" to "CliModuleLoader"
2020-09-17refactor: Move URL to op_crates/web (#7544)Bartek Iwańczuk
2020-09-17refactor: move op_resources and op_close to deno_core (#7539)Bartek Iwańczuk
Moves op_close and op_resources to deno_core::ops and exports them. Adds serde dependency to deno_core and reexports it. Moves JS implementation of those ops to Deno.core and reexports them in Deno.
2020-09-14Rename deno::state::State to deno::state::CliState (#7480)Ryan Dahl
2020-09-15refactor: use the 'anyhow' crate instead of 'ErrBox' (#7476)Bert Belder
2020-09-11refactor(core): JsRuntime initialization (#7415)Bartek Iwańczuk
Removes: - "deno_core::StartupData" - "deno_core::Script" - "deno_core::OwnedScript" Changes to "JsRuntime": - remove "new_with_loader()" - remove "with_heap_limits()" - rename "IsolateOptions" to "RuntimeOptions" and make public - "JsRuntime::new()" takes "RuntimeOptions" as a single param
2020-09-10Use gotham-like state for ops (#7385)Ryan Dahl
Provides a concrete state type that can be dynamically added. This is necessary for op crates. * renames BasicState to OpState * async ops take `Rc<RefCell<OpState>>` * sync ops take `&mut OpState` * removes `OpRegistry`, `OpRouter` traits * `get_error_class_fn` moved to OpState * ResourceTable moved to OpState
2020-09-06Move JSON ops to deno_core (#7336)Bert Belder
2020-09-05feat: Implement WebSocket API (#7051)crowlKats
2020-08-19Make Rc/Arc wrapper around State/GlobalState visible (#7104)Bert Belder
2020-07-10fix(URL): Implement spec-compliant host parsing (#6689)Nayeem Rahman
2020-06-19refactor(compiler): split code paths for compile and bundle (#6304)Bartek Iwańczuk
* refactor "compile" and "runtimeCompile" in "compiler.ts" and factor out separate methods for "compile" and "bundle" operations * remove noisy debug output from "compiler.ts" * provide "Serialize" implementations for enums in "msg.rs" * rename "analyze_dependencies_and_references" to "pre_process_file" and move it to "tsc.rs" * refactor ModuleGraph to use more concrete types and properly annotate locations where errors occur * remove dead code from "file_fetcher.rs" - "SourceFile.types_url" is no longer needed, as type reference parsing is done in "ModuleGraph" * remove unneeded field "source_path" from ".meta" files stored for compiled source file (towards #6080)
2020-05-29refactor: Split isolate and state using safe get_slot() (#5929)Ryan Dahl
2020-05-17Return error if more than one listener calls `WorkerHandle::get_event()` (#5461)Yiyu Lin
2020-05-11Change plugin interface to prevent segfaults when unloading plugin (#5210)Bert Belder
Fixes: #3473 Closes: #5193
2020-04-25remove bootstrap methods from global scope after bootstrapping (#4869)Bartek Iwańczuk
2020-04-19Modify op dispatcher to include &mut Isolate argument (#4821)Ryan Dahl
- Removes unnecessary RwLock and Rc around the op registry table - Preparation to move resource_table to deno_core::Isolate. - Towards #3453, #4222
2020-04-16feat: support Deno namespace in Worker API (#4784)Bartek Iwańczuk
2020-04-10implement Worker.terminate() and self.close() (#4684)Bartek Iwańczuk
2020-04-03clippy (#4618)Kitson Kelly
2020-03-07refactor: remove cli/ops/files.rs (#4246)Bartek Iwańczuk
* "op_close" - moved to "cli/ops/resources.rs" * "op_seek", "op_open" - moved to "cli/ops/fs.rs" Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2020-02-21fix: add io ops to worker to fix fetch (#4054)Bartek Iwańczuk
2020-02-18refactor: remove run_worker_loop (#4028)Bartek Iwańczuk
* remove run_worker_loop, impl poll for WebWorker * store JoinHandle to worker thread
2020-02-11workers: basic event loop (#3828)Bartek Iwańczuk
* establish basic event loop for workers * make "self.close()" inside worker * remove "runWorkerMessageLoop() - instead manually call global function in Rust when message arrives. This is done in preparation for structured clone * refactor "WorkerChannel" and use distinct structs for internal and external channels; "WorkerChannelsInternal" and "WorkerHandle" * move "State.worker_channels_internal" to "Worker.internal_channels" * add "WorkerEvent" enum for child->host communication; currently "Message(Buf)" and "Error(ErrBox)" variants are supported * add tests for nested workers * add tests for worker throwing error on startup
2020-02-08refactor: rename ThreadSafeState, use RefCell for mutable state (#3931)Bartek Iwańczuk
* rename ThreadSafeState to State * State stores InnerState wrapped in Rc and RefCell
2020-02-05Move create_channels into worker constructor (#3889)Ryan Dahl
2020-02-04refactor: CLI subcommands and argv (#3886)Bartek Iwańczuk
2020-02-03refactor: Use Tokio's single-threaded runtime (#3844)Ryan Dahl
This change simplifies how we execute V8. Previously V8 Isolates jumped around threads every time they were woken up. This was overly complex and potentially hurting performance in a myriad ways. Now isolates run on their own dedicated thread and never move. - blocking_json spawns a thread and does not use a thread pool - op_host_poll_worker and op_host_resume_worker are non-operational - removes Worker::get_message and Worker::post_message - ThreadSafeState::workers table contains WorkerChannel entries instead of actual Worker instances. - MainWorker and CompilerWorker are no longer Futures. - The multi-threaded version of deno_core_http_bench was removed. - AyncOps no longer need to be Send + Sync This PR is very large and several tests were disabled to speed integration: - installer_test_local_module_run - installer_test_remote_module_run - _015_duplicate_parallel_import - _026_workers
2020-01-27refactor: isomorphic snapshot for CLI (#3728)Bartek Iwańczuk
2020-01-21refactor: split cli::Worker (#3735)Bartek Iwańczuk
* cli::Worker is base struct to create specialized workers * add MainWorker * add CompilerWorker * refactor WebWorker to use Worker
2020-01-21refactor: split worker and worker host logic (#3722)Bartek Iwańczuk
* split ops/worker.rs into ops/worker_host.rs and ops/web_worker.rs * refactor js/workers.ts and factor out js/worker_main.ts - entry point for WebWorker runtime * BREAKING CHANGE: remove support for blob: URL in Worker * BREAKING CHANGE: remove Deno namespace support and noDenoNamespace option in Worker constructor * introduce WebWorker struct which is a stripped down version of cli::Worker