DioxusLabs / DioxusLabs/dioxus

subsecond: simple test does not work when async

Open
#4,305 11 comments 2 reactions 0 assignees View on GitHub
bug subsecond
Dominant language
Rust
Stars
39.1k
Forks
1.9k
Avg merge
4d 10h
Merged PRs (30d)
4

Description

**Problem**

Minimum test to understand how to use subsecond.
Works without tokio and async and does nothing (no error) when async is involved

**Steps To Reproduce**

Steps to reproduce the behavior:

- run dx serve --hot-patch
- See the line "Hello" being print over and over again
- change the string to "Hello World!" in the get_response function
- See the hot patching log from the dx cli
- Nothing change the line is still just "Hello"

Code :
```rust
// Import the dioxus_devtools crate for hot-reload and devtools integration.
use dioxus_devtools::connect_subsecond;

// Entry point of the application.
#[tokio::main]
async fn main() {
// Initialize the dioxus_devtools for hot-reloading.
connect_subsecond();

// Start the main application loop.
run_application().await;
}

// Main application loop that runs indefinitely.
async fn run_application() {
loop {
// Call the get_response function through subsecond::call to enable hot-reloading.
let greeting = subsecond::call(get_response).await;

// Print the result to the console.
println!("{greeting}");

// Sleep for 10 seconds before repeating.
tokio::time::sleep(std::time::Duration::from_secs(10)).await;
}
}

// Function that returns a greeting string.
// This function can be hot-reloaded at runtime.
async fn get_response() -> String {
"Hello World!".to_string()
}
```

```toml
[dependencies]
dioxus-devtools = "0.7.0-alpha.1"
subsecond = "0.7.0-alpha.1"
tokio = { version = "1.45.1", features = ["full"] }
```

Same code without tokio and async works

**Expected behavior**

- run dx serve --hot-patch
- See the line "Hello" being print over and over again
- change the string to "Hello World!" in the get response method
- See the hot patching log from the dx cli
- The line now prints "Hello World!"

**Screenshots**

![Image](https://github.com/user-attachments/assets/dd85e3ac-e33a-429b-8a50-9435f63e7c37)

**Environment:**

- Dioxus version: dioxus 0.7.0-alpha.1 (662cf0d)
- Rust version: 1.87.0
- OS info: Windows 11
- App platform: None, just trying out subsecond

**Questionnaire**
I'm interested in fixing this myself but don't know where to start.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.