| 144 | const ASYNC_STACK_BYTES: usize = 16 * 1024 * 1024; |
| 145 | |
| 146 | fn main() { |
| 147 | let spawned = std::thread::Builder::new() |
| 148 | .name("tracedecay-main".to_string()) |
| 149 | .stack_size(ASYNC_STACK_BYTES) |
| 150 | .spawn(async_main); |
| 151 | let result = match spawned { |
| 152 | Ok(handle) => match handle.join() { |
| 153 | Ok(result) => result, |
| 154 | Err(panic) => std::panic::resume_unwind(panic), |
| 155 | }, |
| 156 | Err(e) => { |
| 157 | eprintln!("Error: failed to spawn main thread: {e}"); |
| 158 | process::exit(1); |
| 159 | } |
| 160 | }; |
| 161 | if let Err(e) = result { |
| 162 | eprintln!("Error: {}", e); |
| 163 | process::exit(1); |
| 164 | } |
| 165 | } |
| 166 | |
| 167 | fn async_main() -> tracedecay::errors::Result<()> { |
| 168 | let args: Vec<String> = std::env::args().collect(); |