Re: Multitasking Preview Release
- Posted by Michael Nelson <mikestar13 at sbcglobal.net> Sep 25, 2005
- 594 views
I really like the new task API. Robert can do things with it that just simply be done in a library by building it into the interpreter. But the ideal of zero cost for programs that don't use it will not be realized in all cases. A case in point is my own Method Euphoria. I maitain a great deal of state information, inlcuding a call stack which tracks the "this" pointer, the currently running method, and various other things needed to enforce access rights--ME can only enforce protected or private access to a method because it tracks what method is callng it. If I make a task-safe version, I will need to maintain this data on a per task basis. So the state variables that are now integers become sequences, and those that are sequences become nested one level deeper. Every ME operation which acesses this state information will have an extra level of subscipting for each access (may be reduced somewhat but not eliminated by the creative use of temporaries). In addition, each operation will require a call to task_self. This will cause ME programs to run slower, even if they never use tasking. This issue will affect any library which maintains state information per program that would need to shift to maintaining state information per task. -- Mike Nelson