separate(FIBO) task body FIBS_NUMBER is CACHE:positive; -- This task's FIBONACI NUMBER. ID:positive; -- This task is for Fibonaci's Nth number (ID>=1) DONE:boolean; begin accept Get(ID:POSITIVE; F:out positive) do FIBS_NUMBER.ID:=Get.ID; if FIBS_NUMBER.ID<=2 then CACHE:=1; else CACHE:=FIBONACI(FIBS_NUMBER.ID-1)+FIBONACI(FIBS_NUMBER.ID-2); end if; F:=CACHE; end Get; Put('*');iio.Put(FIBS_NUMBER.ID); loop select accept Get(ID:POSITIVE; F:out positive) do if Get.ID/=FIBS_NUMBER.ID then raise CONSTRAINT_ERROR; end if; F:=CACHE; DONE:=false; Put('+'); end Get; or accept STOP do DONE:=true; end STOP; end select; exit when DONE; end loop; end;