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