[問題] 跨process的lock crash問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
問題(Question):
while(1){
if(lock(x)==SUCCEE)
break;
count ++;
if (count > 1000){
unlock(x);
}
}
現階段狀況為同時有兩支process A, B
都進入if(count > 1000) 的條件式裡面
A unlock 之後馬上就 lock 去做他的事情
但是 B 這時候才開始unlock
這樣 A 的 lock 就被 B 破壞了
抓很久才抓到這個問題...
雖然機率很低
但是有大大可以提供想法嗎??
感激不盡 !!
餵入的資料(Input):
x 為存放在 shared memory 裡面供 lock 使用的變數
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.163.101.55
→
03/07 11:52, , 1F
03/07 11:52, 1F
→
03/07 12:49, , 2F
03/07 12:49, 2F
→
03/07 12:50, , 3F
03/07 12:50, 3F
→
03/07 13:13, , 4F
03/07 13:13, 4F
推
03/07 15:19, , 5F
03/07 15:19, 5F
→
03/07 16:15, , 6F
03/07 16:15, 6F
→
03/07 16:17, , 7F
03/07 16:17, 7F
→
03/07 16:18, , 8F
03/07 16:18, 8F
→
03/07 16:18, , 9F
03/07 16:18, 9F
→
03/07 17:26, , 10F
03/07 17:26, 10F
→
03/07 17:27, , 11F
03/07 17:27, 11F
→
03/07 17:39, , 12F
03/07 17:39, 12F
推
03/08 00:47, , 13F
03/08 00:47, 13F