MCPcopy Create free account
hub / github.com/chyyuu/os_kernel_lab / main

Function main

user/src/bin/stackful_coroutine.rs:306–350  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

304
305#[no_mangle]
306pub fn main() {
307 println!("stackful_coroutine begin...");
308 println!("TASK 0(Runtime) STARTING");
309 let mut runtime = Runtime::new();
310 runtime.init();
311 runtime.spawn(|| {
312 println!("TASK 1 STARTING");
313 let id = 1;
314 for i in 0..4 {
315 println!("task: {} counter: {}", id, i);
316 yield_task();
317 }
318 println!("TASK 1 FINISHED");
319 });
320 runtime.spawn(|| {
321 println!("TASK 2 STARTING");
322 let id = 2;
323 for i in 0..8 {
324 println!("task: {} counter: {}", id, i);
325 yield_task();
326 }
327 println!("TASK 2 FINISHED");
328 });
329 runtime.spawn(|| {
330 println!("TASK 3 STARTING");
331 let id = 3;
332 for i in 0..12 {
333 println!("task: {} counter: {}", id, i);
334 yield_task();
335 }
336 println!("TASK 3 FINISHED");
337 });
338 runtime.spawn(|| {
339 println!("TASK 4 STARTING");
340 let id = 4;
341 for i in 0..16 {
342 println!("task: {} counter: {}", id, i);
343 yield_task();
344 }
345 println!("TASK 4 FINISHED");
346 });
347 runtime.run();
348 println!("stackful_coroutine PASSED");
349 exit(0);
350}

Callers

nothing calls this directly

Calls 5

yield_taskFunction · 0.85
exitFunction · 0.85
spawnMethod · 0.80
initMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected