#moxie is almost done
all tests green, last polishes on the spawn channel sizing semantics (size hints, wire encoding policy size limits, buffers) and a more precise set of rules about select statements, the syntax required for spawn-able functions (they have a closed chan struct{} return value) and proper handling of termination conditions, parent panics, or terminates, all its spawns are closed so they cleanly shut down (and they terminate their own spawns too). and yes, all main() functions must have a select{} with a case <-sigint: to properly handle graceful shutdown (that's a MUST) and all spawn functions must have a select{} with a case <-closed: clause.
moxie is designed for cooperative multitasking runtime. every main function in every thread is an event loop that at minimum must handle termination.
tomorrow, or, er. today... i start building production code with moxie.
all tests green, last polishes on the spawn channel sizing semantics (size hints, wire encoding policy size limits, buffers) and a more precise set of rules about select statements, the syntax required for spawn-able functions (they have a closed chan struct{} return value) and proper handling of termination conditions, parent panics, or terminates, all its spawns are closed so they cleanly shut down (and they terminate their own spawns too). and yes, all main() functions must have a select{} with a case <-sigint: to properly handle graceful shutdown (that's a MUST) and all spawn functions must have a select{} with a case <-closed: clause.
moxie is designed for cooperative multitasking runtime. every main function in every thread is an event loop that at minimum must handle termination.
tomorrow, or, er. today... i start building production code with moxie.
3โค๏ธ1๐1