Been working on the programming interface all day. Hooking up all my previous work so all the processes generated can be easily run, suspended or killed. This rough idea might work as a view of all the high level processes of the object being manipulated. In this case it is just the main menu. You double click one of those nodes, and it just sends a command to the plug-in to create a process and passes it the .lua or .asm file for processing. The output and errors will not clutter the screen. You will just see those little buttons light up if there is something to read, and from there, when you click the appropriate button it expands to show you the contents.
The suspension of threads and processes and safe termination, requires creating remote threads on windows, where the calling .dll and the target .dlls architecture must match since we are sending them addresses to execute. This is a minor problem which can be easily solved by creating a minor utility proc for each architecture to inject the correct addresses.
I will continue to work on this programming interface and get it to behave and run smoothly.
1 thought on “146th day”
Another thing I forgot to mention is that I re-factored my native plugin implementation so that all threads exit in a nice clean manner, and the sub-processes all exit cleanly if the parent process dies. This part of the solution needs to be clean, simple and superbly stable.
I still need to write a few more unit tests to cover a few more issues and edge cases, so I can safely focus on the game side.