// Triggers the out-of-memory handler. Should print an error message. | |
#![no_std] | |
#![feature(alloc_error_handler)] | |
extern crate alloc; | |
use alloc::vec::Vec; | |
use core::alloc::Layout; | |
use libtock::println; | |
use libtock::result::TockResult; | |
use libtock::syscalls; | |
libtock_core::stack_size! {0x800} | |
#[libtock::main] | |
fn main() -> TockResult<()> { | |
let mut vec = Vec::new(); | |
loop { | |
vec.push(0); | |
} | |
} | |
#[alloc_error_handler] | |
unsafe fn alloc_error_handler(_: Layout) -> ! { | |
if let Ok(drivers) = libtock::retrieve_drivers() { | |
drivers.console.create_console(); | |
println!("alloc_error_handler called"); | |
} | |
loop { | |
syscalls::raw::yieldk(); | |
} | |
} |