Abstract
In our previous
papers, we
presented advanced type systems for the pi-calculus, which can
guarantee deadlock-freedom in the sense that certain communications
will eventually succeed unless the whole process
diverges. Although such guarantee is quite useful for reasoning
about the behavior of concurrent programs, there still remains a weakness that
the success of a communication cannot be completely guaranteed
due to the problem of divergence. For
example, while a server process that has received a request message
cannot discard the request, it is allowed to infinitely delegate the
request to other processes, causing a livelock. In this paper,
we show that we can guarantee not only deadlock-freedom but also
livelock-freedom, by modifying our previous type systems for
deadlock-freedom. The resulting type system guarantees that certain
communications will eventually succeed under fair scheduling, no
matter whether processes diverge. Moreover, it can also guarantee
that some of those communications will succeed within a certain amount
of time.