\ No newline at end of file
diff --git a/doc/apic/enum.InterruptChip.html b/doc/apic/enum.InterruptChip.html
index c7401da245..562de12fb3 100644
--- a/doc/apic/enum.InterruptChip.html
+++ b/doc/apic/enum.InterruptChip.html
@@ -1,19 +1,20 @@
InterruptChip in apic - Rust
Returns the number of processor core (local APICs) that exist on this system.
\ No newline at end of file
diff --git a/doc/apic/fn.get_bsp_id.html b/doc/apic/fn.get_bsp_id.html
index bf20cd665b..0a9628f927 100644
--- a/doc/apic/fn.get_bsp_id.html
+++ b/doc/apic/fn.get_bsp_id.html
@@ -1,5 +1,5 @@
get_bsp_id in apic - Rust
\ No newline at end of file
diff --git a/doc/apic/fn.get_lapics.html b/doc/apic/fn.get_lapics.html
index 1de7b47f48..72127e6a4d 100644
--- a/doc/apic/fn.get_lapics.html
+++ b/doc/apic/fn.get_lapics.html
@@ -1,6 +1,6 @@
get_lapics in apic - Rust
Returns a reference to the list of LocalApics, one per processor core
\ No newline at end of file
diff --git a/doc/apic/fn.get_my_apic.html b/doc/apic/fn.get_my_apic.html
index 90148179df..0cd2ac3565 100644
--- a/doc/apic/fn.get_my_apic.html
+++ b/doc/apic/fn.get_my_apic.html
@@ -1,6 +1,6 @@
get_my_apic in apic - Rust
Returns a reference to the LocalApic for the currently executing processsor core.
\ No newline at end of file
diff --git a/doc/apic/fn.get_my_apic_id.html b/doc/apic/fn.get_my_apic_id.html
index 09ed86416b..5d31384f2b 100644
--- a/doc/apic/fn.get_my_apic_id.html
+++ b/doc/apic/fn.get_my_apic_id.html
@@ -1,6 +1,6 @@
get_my_apic_id in apic - Rust
Returns the APIC ID of the currently executing processor core.
\ No newline at end of file
diff --git a/doc/apic/fn.has_x2apic.html b/doc/apic/fn.has_x2apic.html
index 4cb63e5483..7b81aea876 100644
--- a/doc/apic/fn.has_x2apic.html
+++ b/doc/apic/fn.has_x2apic.html
@@ -1,6 +1,6 @@
has_x2apic in apic - Rust
Returns true if the machine has support for x2apic
\ No newline at end of file
diff --git a/doc/apic/fn.init.html b/doc/apic/fn.init.html
index cb916f8c8a..4f29cc8eed 100644
--- a/doc/apic/fn.init.html
+++ b/doc/apic/fn.init.html
@@ -1,7 +1,7 @@
init in apic - Rust
Initially maps the base APIC MMIO register frames so that we can know which LAPIC (core) we are.
This only does something for apic/xapic systems, it does nothing for x2apic systems, as required.
\ No newline at end of file
diff --git a/doc/apic/fn.is_bsp.html b/doc/apic/fn.is_bsp.html
index 9825212698..ba267c3117 100644
--- a/doc/apic/fn.is_bsp.html
+++ b/doc/apic/fn.is_bsp.html
@@ -1,7 +1,7 @@
is_bsp in apic - Rust
Returns true if the currently executing processor core is the bootstrap processor,
i.e., the first procesor to run
\ No newline at end of file
diff --git a/doc/apic/index.html b/doc/apic/index.html
index fb6cefb1f4..0743ca4ef2 100644
--- a/doc/apic/index.html
+++ b/doc/apic/index.html
@@ -1,7 +1,7 @@
apic - Rust
The interrupt chip that is currently configured on this machine.
The default is InterruptChip::PIC, but the typical case is APIC or X2APIC,
which will be set once those chips have been initialized.
diff --git a/doc/apic/struct.ApicRegisters.html b/doc/apic/struct.ApicRegisters.html
index 48cef2c4b5..e4faf1c819 100644
--- a/doc/apic/struct.ApicRegisters.html
+++ b/doc/apic/struct.ApicRegisters.html
@@ -1,7 +1,7 @@
ApicRegisters in apic - Rust
This Lapic’s ID. Some systems allow setting the ID, but it is typically read-only.
Only the top 8 bits are relevant, so bit shift it to the right by 24 bits to get the actual ID.
Set the NonMaskableInterrupt redirect for this LocalApic.
Argument lint can be either 0 or 1, since each local APIC has two LVT LINTs
(Local Vector Table Local INTerrupts)
Returns the values of the 8 in-service registers for this APIC,
which is a series of bitmasks that shows which interrupt lines are currently being serviced.
Returns the values of the 8 request registers for this APIC,
which is a series of bitmasks that shows which interrupt lines are currently raised,
but not yet being serviced.
An asynchronous channel for Inter-Task Communication (ITC) with an internal queue for buffering messages.
This crate offers an asynchronous channel that allows multiple tasks
to exchange messages through the use of a bounded-capacity intermediate buffer.
Unlike the rendezvous channel, the sender and receiver do not need to rendezvous to send or receive data.
diff --git a/doc/async_channel/struct.Receiver.html b/doc/async_channel/struct.Receiver.html
index d3d33e5352..ba58eb162b 100644
--- a/doc/async_channel/struct.Receiver.html
+++ b/doc/async_channel/struct.Receiver.html
@@ -1,18 +1,18 @@
Receiver in async_channel - Rust
Tries to receive a message, only succeeding if a message is already available in the buffer.
If receive succeeds returns Some(Ok(T)).
If an endpoint is disconnected returns Some(Err(ChannelStatus::Disconnected)).
If no such message exists, it returns None without blocking
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.breakpoint_handler.html b/doc/exceptions_full/fn.breakpoint_handler.html
index 7e2c80da00..458e5e244d 100644
--- a/doc/exceptions_full/fn.breakpoint_handler.html
+++ b/doc/exceptions_full/fn.breakpoint_handler.html
@@ -1,6 +1,6 @@
breakpoint_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.debug_handler.html b/doc/exceptions_full/fn.debug_handler.html
index 04c55f2f43..7e59f82c75 100644
--- a/doc/exceptions_full/fn.debug_handler.html
+++ b/doc/exceptions_full/fn.debug_handler.html
@@ -1,6 +1,6 @@
debug_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.device_not_available_handler.html b/doc/exceptions_full/fn.device_not_available_handler.html
index 23c1f8e044..8c35041613 100644
--- a/doc/exceptions_full/fn.device_not_available_handler.html
+++ b/doc/exceptions_full/fn.device_not_available_handler.html
@@ -1,7 +1,7 @@
device_not_available_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.double_fault_handler.html b/doc/exceptions_full/fn.double_fault_handler.html
index 140db32fe4..775e1fd442 100644
--- a/doc/exceptions_full/fn.double_fault_handler.html
+++ b/doc/exceptions_full/fn.double_fault_handler.html
@@ -1,6 +1,6 @@
double_fault_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.general_protection_fault_handler.html b/doc/exceptions_full/fn.general_protection_fault_handler.html
index a6db403284..b64ab67871 100644
--- a/doc/exceptions_full/fn.general_protection_fault_handler.html
+++ b/doc/exceptions_full/fn.general_protection_fault_handler.html
@@ -1,6 +1,6 @@
general_protection_fault_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.invalid_opcode_handler.html b/doc/exceptions_full/fn.invalid_opcode_handler.html
index a298d5ff56..2f9cb1c4b0 100644
--- a/doc/exceptions_full/fn.invalid_opcode_handler.html
+++ b/doc/exceptions_full/fn.invalid_opcode_handler.html
@@ -1,6 +1,6 @@
invalid_opcode_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.invalid_tss_handler.html b/doc/exceptions_full/fn.invalid_tss_handler.html
index 9c19e01737..962afd91d0 100644
--- a/doc/exceptions_full/fn.invalid_tss_handler.html
+++ b/doc/exceptions_full/fn.invalid_tss_handler.html
@@ -1,6 +1,6 @@
invalid_tss_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.overflow_handler.html b/doc/exceptions_full/fn.overflow_handler.html
index 1411c03816..70aa56eaaf 100644
--- a/doc/exceptions_full/fn.overflow_handler.html
+++ b/doc/exceptions_full/fn.overflow_handler.html
@@ -1,6 +1,6 @@
overflow_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.page_fault_handler.html b/doc/exceptions_full/fn.page_fault_handler.html
index d7cd6a8b3a..cd8a751b96 100644
--- a/doc/exceptions_full/fn.page_fault_handler.html
+++ b/doc/exceptions_full/fn.page_fault_handler.html
@@ -1,6 +1,6 @@
page_fault_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/fn.segment_not_present_handler.html b/doc/exceptions_full/fn.segment_not_present_handler.html
index 67c20ca5e4..098d0ea70d 100644
--- a/doc/exceptions_full/fn.segment_not_present_handler.html
+++ b/doc/exceptions_full/fn.segment_not_present_handler.html
@@ -1,6 +1,6 @@
segment_not_present_handler in exceptions_full - Rust
\ No newline at end of file
diff --git a/doc/exceptions_full/index.html b/doc/exceptions_full/index.html
index ad7e4424c1..b8d5614146 100644
--- a/doc/exceptions_full/index.html
+++ b/doc/exceptions_full/index.html
@@ -1,7 +1,7 @@
exceptions_full - Rust
For swapping of a crate from the identical object file in the disk.
Wraps arpund the crate_swap function by creating an appropriate Swap request.
Arguments identical to the ones of crate_swap except
namespace : Arc to the current namespace
diff --git a/doc/fault_crate_swap/fn.get_crate_to_swap.html b/doc/fault_crate_swap/fn.get_crate_to_swap.html
index 7a40f2614d..f82c28dc3d 100644
--- a/doc/fault_crate_swap/fn.get_crate_to_swap.html
+++ b/doc/fault_crate_swap/fn.get_crate_to_swap.html
@@ -1,7 +1,7 @@
This function returns the name of the crate to replace if required.
Returns none if no crate is needed to be replaced.
\ No newline at end of file
diff --git a/doc/fault_crate_swap/fn.self_swap_handler.html b/doc/fault_crate_swap/fn.self_swap_handler.html
index 0f6c9afd98..713fb9c784 100644
--- a/doc/fault_crate_swap/fn.self_swap_handler.html
+++ b/doc/fault_crate_swap/fn.self_swap_handler.html
@@ -1,7 +1,7 @@
self_swap_handler in fault_crate_swap - Rust
This function calls the crate swapping routine for a corrupted crate (referred to as self swap)
Swapping a crate with a new copy of object file includes following steps in high level
Call generic crate swapping routine with self_swap = true
A data structure to hold the ranges of memory used by the old crate and the new crate.
The crate only maintains the values as virtual addresses and holds no references to any
diff --git a/doc/fault_log/fn.get_the_most_recent_match.html b/doc/fault_log/fn.get_the_most_recent_match.html
index 355976b24d..1b53be818f 100644
--- a/doc/fault_log/fn.get_the_most_recent_match.html
+++ b/doc/fault_log/fn.get_the_most_recent_match.html
@@ -1,7 +1,7 @@
Provides the most recent entry in the log for given crate
Utility function for iterative crate replacement
\ No newline at end of file
diff --git a/doc/fault_log/fn.log_exception.html b/doc/fault_log/fn.log_exception.html
index e2530df790..68ee990f88 100644
--- a/doc/fault_log/fn.log_exception.html
+++ b/doc/fault_log/fn.log_exception.html
@@ -1,7 +1,7 @@
log_exception in fault_log - Rust
Add a new exception instance to the fault log.
Generally it will have fault_type and instruction_pointer.
If error_code is provided with exception it will be send to
the function as Some(error_code).
diff --git a/doc/fault_log/fn.log_handled_fault.html b/doc/fault_log/fn.log_handled_fault.html
index de3e17d920..f3e5560745 100644
--- a/doc/fault_log/fn.log_handled_fault.html
+++ b/doc/fault_log/fn.log_handled_fault.html
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/doc/fault_log/fn.log_panic_entry.html b/doc/fault_log/fn.log_panic_entry.html
index ae3cc7b181..7c06b999bc 100644
--- a/doc/fault_log/fn.log_panic_entry.html
+++ b/doc/fault_log/fn.log_panic_entry.html
@@ -1,6 +1,6 @@
log_panic_entry in fault_log - Rust
\ No newline at end of file
diff --git a/doc/fault_log/fn.print_fault_log.html b/doc/fault_log/fn.print_fault_log.html
index de4fe956be..98b5ba37e4 100644
--- a/doc/fault_log/fn.print_fault_log.html
+++ b/doc/fault_log/fn.print_fault_log.html
@@ -1,6 +1,6 @@
print_fault_log in fault_log - Rust
\ No newline at end of file
diff --git a/doc/fault_log/fn.remove_unhandled_exceptions.html b/doc/fault_log/fn.remove_unhandled_exceptions.html
index bf4c89af6d..ede268df3e 100644
--- a/doc/fault_log/fn.remove_unhandled_exceptions.html
+++ b/doc/fault_log/fn.remove_unhandled_exceptions.html
@@ -1,7 +1,7 @@
remove_unhandled_exceptions in fault_log - Rust
Removes the unhandled faults from the fault log and returns.
Is useful when we update the recovery detail about unhandled exceptions.
\ No newline at end of file
diff --git a/doc/fault_log/index.html b/doc/fault_log/index.html
index 3dbdfff35b..7465473a4d 100644
--- a/doc/fault_log/index.html
+++ b/doc/fault_log/index.html
@@ -1,7 +1,7 @@
fault_log - Rust
This crate logs all the faults occuring within Theseus.
Maintains a list of exceptions and panics that has occured since booting up.
This crate does not hold reference to any task or app.
diff --git a/doc/implementors/core/clone/trait.Clone.js b/doc/implementors/core/clone/trait.Clone.js
index b84685966c..747e481e5f 100644
--- a/doc/implementors/core/clone/trait.Clone.js
+++ b/doc/implementors/core/clone/trait.Clone.js
@@ -35,7 +35,7 @@ implementors["sdt"] = [{"text":"impl Clone for SerialPortAddress","synthetic":false,"types":["serial_port::SerialPortAddress"]}];
implementors["shapes"] = [{"text":"impl Clone for Coord","synthetic":false,"types":["shapes::Coord"]},{"text":"impl Clone for Rectangle","synthetic":false,"types":["shapes::Rectangle"]}];
implementors["stdio"] = [{"text":"impl Clone for StdioReader","synthetic":false,"types":["stdio::StdioReader"]},{"text":"impl Clone for StdioWriter","synthetic":false,"types":["stdio::StdioWriter"]},{"text":"impl Clone for KeyEventQueueReader","synthetic":false,"types":["stdio::KeyEventQueueReader"]},{"text":"impl Clone for KeyEventQueueWriter","synthetic":false,"types":["stdio::KeyEventQueueWriter"]}];
-implementors["task"] = [{"text":"impl Clone for PanicInfoOwned","synthetic":false,"types":["task::PanicInfoOwned"]},{"text":"impl Clone for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl Clone for PanicInfoOwned","synthetic":false,"types":["task::PanicInfoOwned"]},{"text":"impl Clone for RunState","synthetic":false,"types":["task::RunState"]},{"text":"impl Clone for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
implementors["text_terminal"] = [{"text":"impl Clone for Color","synthetic":false,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Clone for ForegroundColor","synthetic":false,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Clone for BackgroundColor","synthetic":false,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Clone for UnderlinedColor","synthetic":false,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Clone for Style","synthetic":false,"types":["text_terminal::ansi_style::Style"]},{"text":"impl Clone for FormatFlags","synthetic":false,"types":["text_terminal::ansi_style::FormatFlags"]}];
implementors["unified_channel"] = [{"text":"impl Clone for StringSender","synthetic":false,"types":["unified_channel::StringSender"]},{"text":"impl Clone for StringReceiver","synthetic":false,"types":["unified_channel::StringReceiver"]}];
implementors["vga_buffer"] = [{"text":"impl Clone for Color","synthetic":false,"types":["vga_buffer::Color"]},{"text":"impl Clone for ColorCode","synthetic":false,"types":["vga_buffer::ColorCode"]},{"text":"impl Clone for ScreenChar","synthetic":false,"types":["vga_buffer::ScreenChar"]}];
diff --git a/doc/implementors/core/cmp/trait.Eq.js b/doc/implementors/core/cmp/trait.Eq.js
index fff0ec5154..d5cc7cd5d5 100644
--- a/doc/implementors/core/cmp/trait.Eq.js
+++ b/doc/implementors/core/cmp/trait.Eq.js
@@ -10,6 +10,6 @@ implementors["memory_structs"] = [{"text":"impl Eq for Path","synthetic":false,"types":["path::Path"]}];
implementors["pci"] = [{"text":"impl Eq for PciLocation","synthetic":false,"types":["pci::PciLocation"]}];
implementors["shapes"] = [{"text":"impl Eq for Coord","synthetic":false,"types":["shapes::Coord"]}];
-implementors["task"] = [{"text":"impl Eq for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl Eq for RunState","synthetic":false,"types":["task::RunState"]},{"text":"impl Eq for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
implementors["text_terminal"] = [{"text":"impl Eq for Color","synthetic":false,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Eq for ForegroundColor","synthetic":false,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Eq for BackgroundColor","synthetic":false,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Eq for UnderlinedColor","synthetic":false,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Eq for Style","synthetic":false,"types":["text_terminal::ansi_style::Style"]},{"text":"impl Eq for FormatFlags","synthetic":false,"types":["text_terminal::ansi_style::FormatFlags"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/doc/implementors/core/cmp/trait.PartialEq.js b/doc/implementors/core/cmp/trait.PartialEq.js
index 895b804769..e9e90dbedb 100644
--- a/doc/implementors/core/cmp/trait.PartialEq.js
+++ b/doc/implementors/core/cmp/trait.PartialEq.js
@@ -15,7 +15,7 @@ implementors["mlx_ethernet"] = [{"text":"impl PartialEq<Path> for Path","synthetic":false,"types":["path::Path"]}];
implementors["pci"] = [{"text":"impl PartialEq<PciLocation> for PciLocation","synthetic":false,"types":["pci::PciLocation"]}];
implementors["shapes"] = [{"text":"impl PartialEq<Coord> for Coord","synthetic":false,"types":["shapes::Coord"]},{"text":"impl PartialEq<Rectangle> for Rectangle","synthetic":false,"types":["shapes::Rectangle"]}];
-implementors["task"] = [{"text":"impl PartialEq<TaskRef> for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl PartialEq<RunState> for RunState","synthetic":false,"types":["task::RunState"]},{"text":"impl PartialEq<TaskRef> for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
implementors["text_terminal"] = [{"text":"impl PartialEq<Color> for Color","synthetic":false,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl PartialEq<ForegroundColor> for ForegroundColor","synthetic":false,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl PartialEq<BackgroundColor> for BackgroundColor","synthetic":false,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl PartialEq<UnderlinedColor> for UnderlinedColor","synthetic":false,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl PartialEq<Style> for Style","synthetic":false,"types":["text_terminal::ansi_style::Style"]},{"text":"impl PartialEq<FormatFlags> for FormatFlags","synthetic":false,"types":["text_terminal::ansi_style::FormatFlags"]}];
implementors["wait_queue"] = [{"text":"impl PartialEq<WaitError> for WaitError","synthetic":false,"types":["wait_queue::WaitError"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/doc/implementors/core/marker/trait.Copy.js b/doc/implementors/core/marker/trait.Copy.js
index 2800cd3d02..01d3d692d0 100644
--- a/doc/implementors/core/marker/trait.Copy.js
+++ b/doc/implementors/core/marker/trait.Copy.js
@@ -22,6 +22,7 @@ implementors["rsdp"] = [{"text":"impl Copy for Sdt","synthetic":false,"types":["sdt::Sdt"]},{"text":"impl Copy for GenericAddressStructure","synthetic":false,"types":["sdt::GenericAddressStructure"]}];
implementors["serial_port"] = [{"text":"impl Copy for SerialPortAddress","synthetic":false,"types":["serial_port::SerialPortAddress"]}];
implementors["shapes"] = [{"text":"impl Copy for Coord","synthetic":false,"types":["shapes::Coord"]},{"text":"impl Copy for Rectangle","synthetic":false,"types":["shapes::Rectangle"]}];
+implementors["task"] = [{"text":"impl Copy for RunState","synthetic":false,"types":["task::RunState"]}];
implementors["text_terminal"] = [{"text":"impl Copy for Color","synthetic":false,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Copy for ForegroundColor","synthetic":false,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Copy for BackgroundColor","synthetic":false,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Copy for UnderlinedColor","synthetic":false,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Copy for Style","synthetic":false,"types":["text_terminal::ansi_style::Style"]},{"text":"impl Copy for FormatFlags","synthetic":false,"types":["text_terminal::ansi_style::FormatFlags"]}];
implementors["vga_buffer"] = [{"text":"impl Copy for Color","synthetic":false,"types":["vga_buffer::Color"]},{"text":"impl Copy for ColorCode","synthetic":false,"types":["vga_buffer::ColorCode"]},{"text":"impl Copy for ScreenChar","synthetic":false,"types":["vga_buffer::ScreenChar"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/doc/implementors/core/marker/trait.Freeze.js b/doc/implementors/core/marker/trait.Freeze.js
index fc92997f40..7e6f3c0de6 100644
--- a/doc/implementors/core/marker/trait.Freeze.js
+++ b/doc/implementors/core/marker/trait.Freeze.js
@@ -88,7 +88,7 @@ implementors["spawn"] = [{"text":"impl Freeze for Stack","synthetic":true,"types":["stack::Stack"]}];
implementors["state_store"] = [{"text":"impl<S> !Freeze for SSCached<S>","synthetic":true,"types":["state_store::SSCached"]}];
implementors["stdio"] = [{"text":"impl<T> Freeze for RingBufferEof<T>","synthetic":true,"types":["stdio::RingBufferEof"]},{"text":"impl Freeze for Stdio","synthetic":true,"types":["stdio::Stdio"]},{"text":"impl Freeze for StdioReader","synthetic":true,"types":["stdio::StdioReader"]},{"text":"impl Freeze for StdioWriter","synthetic":true,"types":["stdio::StdioWriter"]},{"text":"impl<'a> Freeze for StdioReadGuard<'a>","synthetic":true,"types":["stdio::StdioReadGuard"]},{"text":"impl<'a> Freeze for StdioWriteGuard<'a>","synthetic":true,"types":["stdio::StdioWriteGuard"]},{"text":"impl Freeze for KeyEventQueue","synthetic":true,"types":["stdio::KeyEventQueue"]},{"text":"impl Freeze for KeyEventQueueReader","synthetic":true,"types":["stdio::KeyEventQueueReader"]},{"text":"impl Freeze for KeyEventQueueWriter","synthetic":true,"types":["stdio::KeyEventQueueWriter"]},{"text":"impl Freeze for KeyEventReadGuard","synthetic":true,"types":["stdio::KeyEventReadGuard"]}];
-implementors["task"] = [{"text":"impl Freeze for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Freeze for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Freeze for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl Freeze for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Freeze for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl Freeze for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl Freeze for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Freeze for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl Freeze for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Freeze for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Freeze for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl Freeze for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Freeze for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl Freeze for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl Freeze for TaskInner","synthetic":true,"types":["task::TaskInner"]},{"text":"impl !Freeze for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Freeze for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
implementors["task_fs"] = [{"text":"impl Freeze for TaskFs","synthetic":true,"types":["task_fs::TaskFs"]},{"text":"impl Freeze for TaskDir","synthetic":true,"types":["task_fs::TaskDir"]},{"text":"impl Freeze for TaskFile","synthetic":true,"types":["task_fs::TaskFile"]},{"text":"impl Freeze for MmiDir","synthetic":true,"types":["task_fs::MmiDir"]},{"text":"impl Freeze for MmiFile","synthetic":true,"types":["task_fs::MmiFile"]}];
implementors["text_display"] = [{"text":"impl Freeze for TextDisplay","synthetic":true,"types":["text_display::TextDisplay"]}];
implementors["text_terminal"] = [{"text":"impl Freeze for Color","synthetic":true,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Freeze for ForegroundColor","synthetic":true,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Freeze for BackgroundColor","synthetic":true,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Freeze for UnderlinedColor","synthetic":true,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Freeze for Style","synthetic":true,"types":["text_terminal::ansi_style::Style"]},{"text":"impl<'old, 'new> Freeze for StyleDiff<'old, 'new>","synthetic":true,"types":["text_terminal::ansi_style::StyleDiff"]},{"text":"impl Freeze for AnsiStyleCodes","synthetic":true,"types":["text_terminal::ansi_style::AnsiStyleCodes"]},{"text":"impl Freeze for FormatFlags","synthetic":true,"types":["text_terminal::ansi_style::FormatFlags"]},{"text":"impl Freeze for AsciiControlCodes","synthetic":true,"types":["text_terminal::ansi_style::AsciiControlCodes"]},{"text":"impl Freeze for ScrollPosition","synthetic":true,"types":["text_terminal::ScrollPosition"]},{"text":"impl<Output> Freeze for TextTerminal<Output> where Output: Freeze, ","synthetic":true,"types":["text_terminal::TextTerminal"]},{"text":"impl Freeze for Character","synthetic":true,"types":["text_terminal::Character"]},{"text":"impl Freeze for Unit","synthetic":true,"types":["text_terminal::Unit"]},{"text":"impl Freeze for CursorStyle","synthetic":true,"types":["text_terminal::CursorStyle"]}];
diff --git a/doc/implementors/core/marker/trait.Send.js b/doc/implementors/core/marker/trait.Send.js
index 016c2eeda0..67108de92f 100644
--- a/doc/implementors/core/marker/trait.Send.js
+++ b/doc/implementors/core/marker/trait.Send.js
@@ -88,7 +88,7 @@ implementors["spawn"] = [{"text":"impl Send for Stack","synthetic":true,"types":["stack::Stack"]}];
implementors["state_store"] = [{"text":"impl<S> Send for SSCached<S>","synthetic":true,"types":["state_store::SSCached"]}];
implementors["stdio"] = [{"text":"impl<T> Send for RingBufferEof<T> where T: Send, ","synthetic":true,"types":["stdio::RingBufferEof"]},{"text":"impl Send for Stdio","synthetic":true,"types":["stdio::Stdio"]},{"text":"impl Send for StdioReader","synthetic":true,"types":["stdio::StdioReader"]},{"text":"impl Send for StdioWriter","synthetic":true,"types":["stdio::StdioWriter"]},{"text":"impl<'a> Send for StdioReadGuard<'a>","synthetic":true,"types":["stdio::StdioReadGuard"]},{"text":"impl<'a> Send for StdioWriteGuard<'a>","synthetic":true,"types":["stdio::StdioWriteGuard"]},{"text":"impl Send for KeyEventQueue","synthetic":true,"types":["stdio::KeyEventQueue"]},{"text":"impl Send for KeyEventQueueReader","synthetic":true,"types":["stdio::KeyEventQueueReader"]},{"text":"impl Send for KeyEventQueueWriter","synthetic":true,"types":["stdio::KeyEventQueueWriter"]},{"text":"impl !Send for KeyEventReadGuard","synthetic":true,"types":["stdio::KeyEventReadGuard"]}];
-implementors["task"] = [{"text":"impl Send for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Send for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Send for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl Send for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Send for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl Send for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl Send for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Send for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl Send for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Send for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Send for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl Send for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Send for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl Send for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl Send for TaskInner","synthetic":true,"types":["task::TaskInner"]},{"text":"impl Send for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Send for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
implementors["task_fs"] = [{"text":"impl Send for TaskFs","synthetic":true,"types":["task_fs::TaskFs"]},{"text":"impl Send for TaskDir","synthetic":true,"types":["task_fs::TaskDir"]},{"text":"impl Send for TaskFile","synthetic":true,"types":["task_fs::TaskFile"]},{"text":"impl Send for MmiDir","synthetic":true,"types":["task_fs::MmiDir"]},{"text":"impl Send for MmiFile","synthetic":true,"types":["task_fs::MmiFile"]}];
implementors["text_display"] = [{"text":"impl Send for TextDisplay","synthetic":true,"types":["text_display::TextDisplay"]}];
implementors["text_terminal"] = [{"text":"impl Send for Color","synthetic":true,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Send for ForegroundColor","synthetic":true,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Send for BackgroundColor","synthetic":true,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Send for UnderlinedColor","synthetic":true,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Send for Style","synthetic":true,"types":["text_terminal::ansi_style::Style"]},{"text":"impl<'old, 'new> Send for StyleDiff<'old, 'new>","synthetic":true,"types":["text_terminal::ansi_style::StyleDiff"]},{"text":"impl Send for AnsiStyleCodes","synthetic":true,"types":["text_terminal::ansi_style::AnsiStyleCodes"]},{"text":"impl Send for FormatFlags","synthetic":true,"types":["text_terminal::ansi_style::FormatFlags"]},{"text":"impl Send for AsciiControlCodes","synthetic":true,"types":["text_terminal::ansi_style::AsciiControlCodes"]},{"text":"impl Send for ScrollPosition","synthetic":true,"types":["text_terminal::ScrollPosition"]},{"text":"impl<Output> Send for TextTerminal<Output> where Output: Send, ","synthetic":true,"types":["text_terminal::TextTerminal"]},{"text":"impl Send for Character","synthetic":true,"types":["text_terminal::Character"]},{"text":"impl Send for Unit","synthetic":true,"types":["text_terminal::Unit"]},{"text":"impl Send for CursorStyle","synthetic":true,"types":["text_terminal::CursorStyle"]}];
diff --git a/doc/implementors/core/marker/trait.StructuralEq.js b/doc/implementors/core/marker/trait.StructuralEq.js
index 3eb6133a09..e5e651e993 100644
--- a/doc/implementors/core/marker/trait.StructuralEq.js
+++ b/doc/implementors/core/marker/trait.StructuralEq.js
@@ -8,5 +8,6 @@ implementors["keycodes_ascii"] = [{"text":"impl StructuralEq for VirtualAddress","synthetic":false,"types":["memory_structs::VirtualAddress"]},{"text":"impl StructuralEq for PhysicalAddress","synthetic":false,"types":["memory_structs::PhysicalAddress"]},{"text":"impl StructuralEq for Page","synthetic":false,"types":["memory_structs::Page"]},{"text":"impl StructuralEq for Frame","synthetic":false,"types":["memory_structs::Frame"]},{"text":"impl StructuralEq for PageRange","synthetic":false,"types":["memory_structs::PageRange"]},{"text":"impl StructuralEq for FrameRange","synthetic":false,"types":["memory_structs::FrameRange"]}];
implementors["path"] = [{"text":"impl StructuralEq for Path","synthetic":false,"types":["path::Path"]}];
implementors["pci"] = [{"text":"impl StructuralEq for PciLocation","synthetic":false,"types":["pci::PciLocation"]}];
+implementors["task"] = [{"text":"impl StructuralEq for RunState","synthetic":false,"types":["task::RunState"]}];
implementors["text_terminal"] = [{"text":"impl StructuralEq for Color","synthetic":false,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl StructuralEq for ForegroundColor","synthetic":false,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl StructuralEq for BackgroundColor","synthetic":false,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl StructuralEq for UnderlinedColor","synthetic":false,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl StructuralEq for Style","synthetic":false,"types":["text_terminal::ansi_style::Style"]},{"text":"impl StructuralEq for FormatFlags","synthetic":false,"types":["text_terminal::ansi_style::FormatFlags"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/doc/implementors/core/marker/trait.StructuralPartialEq.js b/doc/implementors/core/marker/trait.StructuralPartialEq.js
index 05a892c33e..6e80f5acdd 100644
--- a/doc/implementors/core/marker/trait.StructuralPartialEq.js
+++ b/doc/implementors/core/marker/trait.StructuralPartialEq.js
@@ -14,6 +14,7 @@ implementors["mlx_ethernet"] = [{"text":"impl StructuralPartialEq for Path","synthetic":false,"types":["path::Path"]}];
implementors["pci"] = [{"text":"impl StructuralPartialEq for PciLocation","synthetic":false,"types":["pci::PciLocation"]}];
implementors["shapes"] = [{"text":"impl StructuralPartialEq for Coord","synthetic":false,"types":["shapes::Coord"]},{"text":"impl StructuralPartialEq for Rectangle","synthetic":false,"types":["shapes::Rectangle"]}];
+implementors["task"] = [{"text":"impl StructuralPartialEq for RunState","synthetic":false,"types":["task::RunState"]}];
implementors["text_terminal"] = [{"text":"impl StructuralPartialEq for Color","synthetic":false,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl StructuralPartialEq for ForegroundColor","synthetic":false,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl StructuralPartialEq for BackgroundColor","synthetic":false,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl StructuralPartialEq for UnderlinedColor","synthetic":false,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl StructuralPartialEq for Style","synthetic":false,"types":["text_terminal::ansi_style::Style"]},{"text":"impl StructuralPartialEq for FormatFlags","synthetic":false,"types":["text_terminal::ansi_style::FormatFlags"]}];
implementors["wait_queue"] = [{"text":"impl StructuralPartialEq for WaitError","synthetic":false,"types":["wait_queue::WaitError"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/doc/implementors/core/marker/trait.Sync.js b/doc/implementors/core/marker/trait.Sync.js
index 421d457130..a337f69213 100644
--- a/doc/implementors/core/marker/trait.Sync.js
+++ b/doc/implementors/core/marker/trait.Sync.js
@@ -88,7 +88,7 @@ implementors["spawn"] = [{"text":"impl Sync for Stack","synthetic":true,"types":["stack::Stack"]}];
implementors["state_store"] = [{"text":"impl<S> Sync for SSCached<S>","synthetic":true,"types":["state_store::SSCached"]}];
implementors["stdio"] = [{"text":"impl<T> Sync for RingBufferEof<T> where T: Sync, ","synthetic":true,"types":["stdio::RingBufferEof"]},{"text":"impl Sync for Stdio","synthetic":true,"types":["stdio::Stdio"]},{"text":"impl Sync for StdioReader","synthetic":true,"types":["stdio::StdioReader"]},{"text":"impl Sync for StdioWriter","synthetic":true,"types":["stdio::StdioWriter"]},{"text":"impl<'a> Sync for StdioReadGuard<'a>","synthetic":true,"types":["stdio::StdioReadGuard"]},{"text":"impl<'a> Sync for StdioWriteGuard<'a>","synthetic":true,"types":["stdio::StdioWriteGuard"]},{"text":"impl Sync for KeyEventQueue","synthetic":true,"types":["stdio::KeyEventQueue"]},{"text":"impl Sync for KeyEventQueueReader","synthetic":true,"types":["stdio::KeyEventQueueReader"]},{"text":"impl Sync for KeyEventQueueWriter","synthetic":true,"types":["stdio::KeyEventQueueWriter"]},{"text":"impl !Sync for KeyEventReadGuard","synthetic":true,"types":["stdio::KeyEventReadGuard"]}];
-implementors["task"] = [{"text":"impl Sync for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Sync for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Sync for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl !Sync for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl !Sync for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl !Sync for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl !Sync for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Sync for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl Sync for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Sync for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Sync for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl !Sync for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Sync for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl !Sync for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl !Sync for TaskInner","synthetic":true,"types":["task::TaskInner"]},{"text":"impl Sync for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Sync for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
implementors["task_fs"] = [{"text":"impl Sync for TaskFs","synthetic":true,"types":["task_fs::TaskFs"]},{"text":"impl Sync for TaskDir","synthetic":true,"types":["task_fs::TaskDir"]},{"text":"impl Sync for TaskFile","synthetic":true,"types":["task_fs::TaskFile"]},{"text":"impl Sync for MmiDir","synthetic":true,"types":["task_fs::MmiDir"]},{"text":"impl Sync for MmiFile","synthetic":true,"types":["task_fs::MmiFile"]}];
implementors["text_display"] = [{"text":"impl Sync for TextDisplay","synthetic":true,"types":["text_display::TextDisplay"]}];
implementors["text_terminal"] = [{"text":"impl Sync for Color","synthetic":true,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Sync for ForegroundColor","synthetic":true,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Sync for BackgroundColor","synthetic":true,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Sync for UnderlinedColor","synthetic":true,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Sync for Style","synthetic":true,"types":["text_terminal::ansi_style::Style"]},{"text":"impl<'old, 'new> Sync for StyleDiff<'old, 'new>","synthetic":true,"types":["text_terminal::ansi_style::StyleDiff"]},{"text":"impl Sync for AnsiStyleCodes","synthetic":true,"types":["text_terminal::ansi_style::AnsiStyleCodes"]},{"text":"impl Sync for FormatFlags","synthetic":true,"types":["text_terminal::ansi_style::FormatFlags"]},{"text":"impl Sync for AsciiControlCodes","synthetic":true,"types":["text_terminal::ansi_style::AsciiControlCodes"]},{"text":"impl Sync for ScrollPosition","synthetic":true,"types":["text_terminal::ScrollPosition"]},{"text":"impl<Output> Sync for TextTerminal<Output> where Output: Sync, ","synthetic":true,"types":["text_terminal::TextTerminal"]},{"text":"impl Sync for Character","synthetic":true,"types":["text_terminal::Character"]},{"text":"impl Sync for Unit","synthetic":true,"types":["text_terminal::Unit"]},{"text":"impl Sync for CursorStyle","synthetic":true,"types":["text_terminal::CursorStyle"]}];
diff --git a/doc/implementors/core/marker/trait.Unpin.js b/doc/implementors/core/marker/trait.Unpin.js
index 5bcf959387..4d9b7aa7ed 100644
--- a/doc/implementors/core/marker/trait.Unpin.js
+++ b/doc/implementors/core/marker/trait.Unpin.js
@@ -88,7 +88,7 @@ implementors["spawn"] = [{"text":"impl Unpin for Stack","synthetic":true,"types":["stack::Stack"]}];
implementors["state_store"] = [{"text":"impl<S> Unpin for SSCached<S>","synthetic":true,"types":["state_store::SSCached"]}];
implementors["stdio"] = [{"text":"impl<T> Unpin for RingBufferEof<T> where T: Unpin, ","synthetic":true,"types":["stdio::RingBufferEof"]},{"text":"impl Unpin for Stdio","synthetic":true,"types":["stdio::Stdio"]},{"text":"impl Unpin for StdioReader","synthetic":true,"types":["stdio::StdioReader"]},{"text":"impl Unpin for StdioWriter","synthetic":true,"types":["stdio::StdioWriter"]},{"text":"impl<'a> Unpin for StdioReadGuard<'a>","synthetic":true,"types":["stdio::StdioReadGuard"]},{"text":"impl<'a> Unpin for StdioWriteGuard<'a>","synthetic":true,"types":["stdio::StdioWriteGuard"]},{"text":"impl Unpin for KeyEventQueue","synthetic":true,"types":["stdio::KeyEventQueue"]},{"text":"impl Unpin for KeyEventQueueReader","synthetic":true,"types":["stdio::KeyEventQueueReader"]},{"text":"impl Unpin for KeyEventQueueWriter","synthetic":true,"types":["stdio::KeyEventQueueWriter"]},{"text":"impl Unpin for KeyEventReadGuard","synthetic":true,"types":["stdio::KeyEventReadGuard"]}];
-implementors["task"] = [{"text":"impl Unpin for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Unpin for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Unpin for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl Unpin for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Unpin for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl Unpin for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl Unpin for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Unpin for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
+implementors["task"] = [{"text":"impl Unpin for PanicInfoOwned","synthetic":true,"types":["task::PanicInfoOwned"]},{"text":"impl Unpin for TASKLIST","synthetic":true,"types":["task::TASKLIST"]},{"text":"impl Unpin for KillReason","synthetic":true,"types":["task::KillReason"]},{"text":"impl Unpin for ExitValue","synthetic":true,"types":["task::ExitValue"]},{"text":"impl Unpin for RunState","synthetic":true,"types":["task::RunState"]},{"text":"impl Unpin for RestartInfo","synthetic":true,"types":["task::RestartInfo"]},{"text":"impl Unpin for TaskInner","synthetic":true,"types":["task::TaskInner"]},{"text":"impl Unpin for Task","synthetic":true,"types":["task::Task"]},{"text":"impl Unpin for TaskRef","synthetic":true,"types":["task::TaskRef"]}];
implementors["task_fs"] = [{"text":"impl Unpin for TaskFs","synthetic":true,"types":["task_fs::TaskFs"]},{"text":"impl Unpin for TaskDir","synthetic":true,"types":["task_fs::TaskDir"]},{"text":"impl Unpin for TaskFile","synthetic":true,"types":["task_fs::TaskFile"]},{"text":"impl Unpin for MmiDir","synthetic":true,"types":["task_fs::MmiDir"]},{"text":"impl Unpin for MmiFile","synthetic":true,"types":["task_fs::MmiFile"]}];
implementors["text_display"] = [{"text":"impl Unpin for TextDisplay","synthetic":true,"types":["text_display::TextDisplay"]}];
implementors["text_terminal"] = [{"text":"impl Unpin for Color","synthetic":true,"types":["text_terminal::ansi_colors::Color"]},{"text":"impl Unpin for ForegroundColor","synthetic":true,"types":["text_terminal::ansi_colors::ForegroundColor"]},{"text":"impl Unpin for BackgroundColor","synthetic":true,"types":["text_terminal::ansi_colors::BackgroundColor"]},{"text":"impl Unpin for UnderlinedColor","synthetic":true,"types":["text_terminal::ansi_colors::UnderlinedColor"]},{"text":"impl Unpin for Style","synthetic":true,"types":["text_terminal::ansi_style::Style"]},{"text":"impl<'old, 'new> Unpin for StyleDiff<'old, 'new>","synthetic":true,"types":["text_terminal::ansi_style::StyleDiff"]},{"text":"impl Unpin for AnsiStyleCodes","synthetic":true,"types":["text_terminal::ansi_style::AnsiStyleCodes"]},{"text":"impl Unpin for FormatFlags","synthetic":true,"types":["text_terminal::ansi_style::FormatFlags"]},{"text":"impl Unpin for AsciiControlCodes","synthetic":true,"types":["text_terminal::ansi_style::AsciiControlCodes"]},{"text":"impl Unpin for ScrollPosition","synthetic":true,"types":["text_terminal::ScrollPosition"]},{"text":"impl<Output> Unpin for TextTerminal<Output> where Output: Unpin, ","synthetic":true,"types":["text_terminal::TextTerminal"]},{"text":"impl Unpin for Character","synthetic":true,"types":["text_terminal::Character"]},{"text":"impl Unpin for Unit","synthetic":true,"types":["text_terminal::Unit"]},{"text":"impl Unpin for CursorStyle","synthetic":true,"types":["text_terminal::CursorStyle"]}];
diff --git a/doc/implementors/core/ops/deref/trait.Deref.js b/doc/implementors/core/ops/deref/trait.Deref.js
index 04a11305d3..132e249307 100644
--- a/doc/implementors/core/ops/deref/trait.Deref.js
+++ b/doc/implementors/core/ops/deref/trait.Deref.js
@@ -19,6 +19,6 @@ implementors["runqueue_round_robin"] = [{"text":"impl Deref for BootstrapTaskRef","synthetic":false,"types":["spawn::BootstrapTaskRef"]}];
implementors["stack"] = [{"text":"impl Deref for Stack","synthetic":false,"types":["stack::Stack"]}];
implementors["stdio"] = [{"text":"impl Deref for KeyEventReadGuard","synthetic":false,"types":["stdio::KeyEventReadGuard"]}];
-implementors["task"] = [{"text":"impl Deref for TASKLIST","synthetic":false,"types":["task::TASKLIST"]}];
+implementors["task"] = [{"text":"impl Deref for TASKLIST","synthetic":false,"types":["task::TASKLIST"]},{"text":"impl Deref for TaskRef","synthetic":false,"types":["task::TaskRef"]}];
implementors["text_terminal"] = [{"text":"impl Deref for Unit","synthetic":false,"types":["text_terminal::Unit"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/doc/pmu_x86/enum.EventType.html b/doc/pmu_x86/enum.EventType.html
index 089a5f554a..1c1d8fe5ee 100644
--- a/doc/pmu_x86/enum.EventType.html
+++ b/doc/pmu_x86/enum.EventType.html
@@ -1,7 +1,7 @@
EventType in pmu_x86 - Rust
Finds the corresponding function for each instruction pointer and calculates the percentage amount each function occured in the samples
\ No newline at end of file
diff --git a/doc/pmu_x86/fn.handle_sample.html b/doc/pmu_x86/fn.handle_sample.html
index 2939ef8327..342de8e9e6 100644
--- a/doc/pmu_x86/fn.handle_sample.html
+++ b/doc/pmu_x86/fn.handle_sample.html
@@ -1,7 +1,7 @@
handle_sample in pmu_x86 - Rust
This function is designed to be invoked from an interrupt handler
when a sampling interrupt has (or may have) occurred.
It takes a sample by logging the the instruction pointer and task ID at the point
at which the sampling interrupt occurred.
diff --git a/doc/pmu_x86/fn.init.html b/doc/pmu_x86/fn.init.html
index dd207f17a2..c90a36ab40 100644
--- a/doc/pmu_x86/fn.init.html
+++ b/doc/pmu_x86/fn.init.html
@@ -1,7 +1,7 @@
Initialization function that enables the PMU if one is available.
We initialize the 3 fixed PMCs and general purpose PMCs. Calling this initialization function again
on a core that has already been initialized will do nothing.
Currently we support a maximum core ID of 255, and up to 8 general purpose counters per core.
diff --git a/doc/pmu_x86/fn.print_samples.html b/doc/pmu_x86/fn.print_samples.html
index d40d9225f0..5204597775 100644
--- a/doc/pmu_x86/fn.print_samples.html
+++ b/doc/pmu_x86/fn.print_samples.html
@@ -1,6 +1,6 @@
Simple function to print values from SampleResults in a form that the script “post-mortem pmu analysis.py” can parse.
\ No newline at end of file
diff --git a/doc/pmu_x86/fn.reset_pmu.html b/doc/pmu_x86/fn.reset_pmu.html
index a203d45a8c..c7b03942da 100644
--- a/doc/pmu_x86/fn.reset_pmu.html
+++ b/doc/pmu_x86/fn.reset_pmu.html
@@ -1,7 +1,7 @@
reset_pmu in pmu_x86 - Rust
Frees all counters and make them available to be used.
Essentially sets the PMU to its initial state.
\ No newline at end of file
diff --git a/doc/pmu_x86/fn.retrieve_samples.html b/doc/pmu_x86/fn.retrieve_samples.html
index 40a334a38c..fee8799378 100644
--- a/doc/pmu_x86/fn.retrieve_samples.html
+++ b/doc/pmu_x86/fn.retrieve_samples.html
@@ -1,7 +1,7 @@
retrieve_samples in pmu_x86 - Rust
Returns the samples that were stored during sampling in the form of a SampleResults object.
If samples are not yet finished, forces them to stop.
\ No newline at end of file
diff --git a/doc/pmu_x86/fn.start_samples.html b/doc/pmu_x86/fn.start_samples.html
index 6ec2c8e58e..e59ff55f6c 100644
--- a/doc/pmu_x86/fn.start_samples.html
+++ b/doc/pmu_x86/fn.start_samples.html
@@ -1,7 +1,7 @@
start_samples in pmu_x86 - Rust
Start interrupt process in order to take samples using the PMU.
It loads the starting value as such that an overflow will occur at “event_per_sample” events.
That overflow triggers an interrupt where information about the current running task is sampled.
We have support for PMU version 2. Each succesive PMU version includes the features provided by the previous versions.
Version 1 Support:
To configure an architectural performance monitoring event, we program the performance event select registers (IA32_PERFEVTSELx MSRs).
diff --git a/doc/pmu_x86/struct.Counter.html b/doc/pmu_x86/struct.Counter.html
index af873d63c2..e924b04bf4 100644
--- a/doc/pmu_x86/struct.Counter.html
+++ b/doc/pmu_x86/struct.Counter.html
@@ -1,15 +1,15 @@
Creates a Counter object and assigns a physical counter for it.
If it’s a general PMC, writes the UMASK and Event Code to the relevant MSR, but leaves enable bit clear.
Stops counting, releases the counter, and returns the count of events since the counter was initialized.
This will consume the counter object since after freeing the counter, the counter should not be accessed.
This crate contains the RunQueue structure, for priority scheduler.
RunQueue structure is essentially a list of Tasks
that it used for scheduling purposes.