Idea for event based thread support

BlitzMax Forums/BlitzMax Programming/Idea for event based thread support

BlueApples' idea is basically a subset of what Alaska Software's Xbase++ does.

In Xbase++, multithreading is implemented through thread classes, synchronization is done via methods with a "SYNCHRONIZE" attribute and there are also SYNCHRONIZE properties to ensure that the access to them is being serialized and cannot occur at the same time.

Furthermore, each thread object in Xbase++ has an own event queue (and an own work space for its open databases). You can send events to an other object's event queue with the PostAppEvent() function.

It is possible to make a running thread object persistent and write it to a database; other Xbase++ applications running on different computers will receive a notification (in form of an event) from the database engine that the state of the database has changed, and if you want to, you can retrieve the thread object on a different computer and continue its execution there. We actually had this feature already in 1998. (I've worked there from the summer of '98 'til the beginning of 2001, in case you wonder about the 'we'.).

Of course, the whole thing is also fully garbage collected. By the way, Yellow Cab in New York are using Xbase++ for their dispatch application.