Ниже приведен код, вызывающий это.
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, если вы используете оператор получения или отправки в условии, но из того, что я знаю, пустой - это не оператор отправки или получения, а просто чтобы проверить, не пустой ли канал. Итак, какую ошибку я делаю, и как я могу решить эту проблему.