以下是导致此问题的代码。
if
:: ((fromProc[0] == MSG_SLEEP) && nempty(proc2clk[0])) ->
proc2clk[0] ? fromProc[0]; // Woke up
:: (!(fromProc[0] == MSG_SLEEP) && !(fromProc[0] == MSG_FIN)) ->
clk2proc[0] ! 0;
::else ->
time = time + 1; // just for debugging
fi;
如果我在第一个条件下删除了nempty调用,错误就消失了。根据我的阅读,如果在条件中使用接收或发送语句,则不能使用 else 语句,但据我所知,nempty不是发送或接收语句,而只是检查通道是否不是空的。那么,我在做什么错误,我该如何解决这个问题。