This is the process-linking code I wrote over the summer. It doesn't
work, and classes keep me too busy to continue working on it right
now. Hopefully someone will have time to fix it. Otherwise I will
probably get back to it in a few months.
The problem, most likely, is in messaging.lisp. I added calls to a new
function at the beginning of send, receive, and receive-with-matcher,
so that if a process were marked for destruction it would die before
affecting other processes (thus the hook in send) and as soon as
possible (thus the hooks in a couple other places). I didn't
understand the macros that I was trying to modify, so I was not so
surprised to get a bad result. Keeping the hook only in send might fix
the problem, but that could be horribly inefficient depending on how
often the process tries to send messages.
There is also a need for a new test for process-linking. I vaguely
remember writing at least a basic test, but there doesn't seem to be
one in my working directory.
manager.lisp
most new code
messaging.lisp
hooks into old code created in send/receive/receive-with-matcher
process.lisp
"time-to-die" flag added to process class
erlisp.asd
new entry for manager.lisp