Skip to content

Commit

Permalink
System: expand documentation of exit() method
Browse files Browse the repository at this point in the history
Includes explanation that Sys.exit() bypasses Lime's ability to shut down its C++ subsystems, so System.exit() is recommended as best practice instead of Sys.exit().
  • Loading branch information
joshtynjala committed Oct 25, 2024
1 parent 6a40998 commit 802ae35
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/lime/system/System.hx
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,18 @@ class System
#if (!lime_doc_gen || sys)
/**
Attempts to exit the application. Dispatches `onExit`, and will not
exit if the event is canceled.
exit if the event is canceled. When exiting using this method, Lime will
gracefully shut down a number of subsystems, including (but not limited
to) audio, graphics, timers, and game controllers.
To properly exit a Lime application, it's best to call Lime's
`System.exit()` instead of calling Haxe's built-in `Sys.exit()`. When
targeting native platforms especially, Lime's is built on C++ libraries
that expose functions to clean up resources properly on exit. Haxe's
`Sys.exit()` exits immediately without giving Lime a chance to clean
things up. With that in mind, the proper and correct way to exit a Lime
app is by calling `lime.system.System.exit()`, and to avoid using
`Sys.exit()`.
**/
public static function exit(code:Int):Void
{
Expand Down

0 comments on commit 802ae35

Please sign in to comment.