int GetNumber(int serviceid, int ErrorLimit){
int Number=0;
while(ErrorLimit--){
if(lock(serviceid)){
Number=get(serviceid)+1;//題意要求『傳回為此服務的下一個號碼』故必須先加1才對
set(serviceid, Number);
unlock(serviceid);
break;
}
else{sleep();}
}
return Number;
}
int GetNum(int serviceid, failedNum) {
set(servicedid, failedNum);
int count ==0;
while(true){
if(look(servicedid) == 0){
count++;
if (count == failedNum) {
sleep();
return 0;
}
}else {
unlock(servicedid);
return get(servicedid) +1; //下一號碼
}
}
}