exceptionruntime-errorhaxeneko

(Neko) "alc_cleanup: 1 device not closed" instead of error message


I'm making a game using Haxe and targeting neko. Any uncaught exception leads to alc_cleanup error.

The problem is, this error blocks the output of the exception details.

It's annoying because I use assertions so I can't find out which one threw an exception if one of the tests fail.

Any help here?


Solution

  • The alc_cleanup error simply happens because an OpenAl audio device in use (by your game or an underlying framework) hasn't been closed before terminating the program (due to the uncaught exception).

    If you can, you might want to catch and log that exception yourself to prevent it from being corrupted by the alc_cleanup error:

    static function main()
    {
        try {
           // do stuff
        } catch (e:Dynamic) {
            trace('ERROR: $e');
            trace(haxe.CallStack.toString(haxe.CallStack.exceptionStack()));
            Sys.exit(1);
        }
    }
    

    You could also: