If a function responding to an event has an unhandled exception, we
print a message telling what went wrong and that the function has been
uninvited. However, I never actually uninvite the function from the
event. I have now added in a call to uninvite() before printing the
message.
Libsaria events now support starting specific callback functions in a
background thread. This replaces starting a specific event in the
background.
I have a library tab that is added to the main window through use of the
ocarina.add_tab function.
I have new tests for walking the tree and running multiple threads with
locks.
I combined various parts of the Ocarina 4.0 event system into one file.
The new event file has threading abilities built in, so I no longer need
an external file for that