Hi Eric.
Eric Lavigne wrote:
One issue is that I never used conditions before. I read a bit about them in PCL. What I am imagining is creating a default condition handler which catches any unhandled conditions and sends them as messages to the parent thread (then arranges for its own thread and its children to be shut down). Maybe the handler could be implemented by replacing (make-thread thunk) with something like this (make-thread (lambda () (default-condition-handler thunk)))
Does this sort of thing work? Can I throw a condition, catch it, send it as a message, then throw it again in another process?
Well if you're going to do distributed programming with READ/WRITE for serialization you can definately not send condition objects in a message.
Also, I don't know how one could reraise the condition in another process. I mean, if RECEIVE sees such a "condition message" it could do a raise, but then a linked process would only be killed the next time it did a RECEIVE.
There is also a need for each process to keep track of its parent and any children. This should be simple, but it is not yet clear to me how to do it.
Another issue, of course, is time. Classes have started again, and there is only a week left for SoC. I am going to keep trying until the end, but this is looking very hard.
Oh gee, one more week only? Then getting process linking and distribution done for the SoC is definately not realistic. You are of course more than welcome to continue working on Erlisp after the SoC has ended, if you want to, and time permitting.
I have been reading the Erlisp source, PCL, and Concurrent Programming in Erlang, but now it is definitely time to get back to coding.
Okay, let us know how it goes. :)
- Dirk