diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2022-03-14 23:14:15 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-14 18:44:15 +0100 |
commit | b4e42953e1d243f2eda20e5be6b845d60b7bf688 (patch) | |
tree | 10b3bfff165f9c04f9174c7c399d44b9b724c3b3 /core/examples/schedule_task.rs | |
parent | 4e3ed37037a2aa1edeac260dc3463a81d9cf9b88 (diff) |
feat(core): codegen ops (#13861)
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
Diffstat (limited to 'core/examples/schedule_task.rs')
-rw-r--r-- | core/examples/schedule_task.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/examples/schedule_task.rs b/core/examples/schedule_task.rs index 2f4909b4f..3ada86417 100644 --- a/core/examples/schedule_task.rs +++ b/core/examples/schedule_task.rs @@ -1,6 +1,7 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. use deno_core::anyhow::Error; +use deno_core::op; use deno_core::Extension; use deno_core::JsRuntime; use deno_core::OpState; @@ -9,14 +10,16 @@ use futures::channel::mpsc; use futures::stream::StreamExt; use std::task::Poll; +// This is a hack to make the `#[op]` macro work with +// deno_core examples. +// You can remove this: +use deno_core::*; + type Task = Box<dyn FnOnce()>; fn main() { let my_ext = Extension::builder() - .ops(vec![( - "op_schedule_task", - deno_core::op_sync(op_schedule_task), - )]) + .ops(vec![op_schedule_task::decl()]) .event_loop_middleware(|state, cx| { let recv = state.borrow_mut::<mpsc::UnboundedReceiver<Task>>(); let mut ref_loop = false; @@ -58,6 +61,7 @@ fn main() { runtime.block_on(future).unwrap(); } +#[op] fn op_schedule_task(state: &mut OpState, i: u8, _: ()) -> Result<(), Error> { let tx = state.borrow_mut::<mpsc::UnboundedSender<Task>>(); tx.unbounded_send(Box::new(move || println!("Hello, world! x{}", i))) |