On Wed, May 16, 2012 at 4:30 PM, Nicolas Cellier < nicolas.cellier.aka.nice@gmail.com> wrote:
Instead of a block, your Process would perform an instance method like #run upon exec, while forking would just mean instantiating Process (and populating shared objetcs as ivars) ? Very much like Threads in other languages (Boost, Qt, etc...)...
I find forking a block very light weight and powerfull, so your proposition effectively helps mainly for naming and classifying things (sic - I mean organizing). Note that almost all cases will be singleton.
Maybe some isKindOf: will be required in the VM, did you check?
Maybe easier. Each reified process will just do the same [ self doSomeLoop ] forkNamed: 'asdasd'. that is now hidden in class side of whatever classes. So, nothing changes from the vm side, a lightweight process can still be created from a block, and the well known processes are something we can find easily :).
Nicolas
2012/5/16 Guillermo Polito <guillermopolito@gmail.com>:
I'm playing with the process initialization for the bootstrap, and some things come to my mind.
There are some classes that startup processes on the class side initialize, like
WeakArray -> Finalization process Delay -> Timer event loop
What it is not clear to me is if those processes should be installed when the class is initialized, or when it is startupped for the first time. Also, I can't stop thinking that the processes in the image are all spread and not clear. If I want to know where the processes are defined, it's kind of a mess.
Is having specialized objects for our processes undesired by some reason I can't see? I'd like to have objects like
MorphicUIProcess FinalizationProcess TimeEventProcess ... and so on
Guille