亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3275 | 回復(fù): 2
打印 上一主題 下一主題

死鎖了,發(fā)生原因不明 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-05-16 10:39 |只看該作者 |倒序?yàn)g覽
自己寫了一個(gè)CAN驅(qū)動(dòng)。fops的read如下:
static ssize_t mcp251x_read(struct file *file, char __user *buf, size_t count, loff_t *ofs)
{
    struct mcp251x *chip = file->private_data;
    struct can_frame *frame;
   
    if (count != sizeof(struct can_frame))
        return -EINVAL;
        
    if (down_interruptible(&chip->rxblock))
        return -ERESTARTSYS;
   
    while (chip->rxbin == chip->rxbout) {
        up(&chip->rxblock);
        if (file->f_flags & O_NONBLOCK)
            return -EAGAIN;
        if (wait_event_interruptible(chip->wq, (chip->rxbin != chip->rxbout)))
            return -ERESTARTSYS;
        if (down_interruptible(&chip->rxblock))
            return -ERESTARTSYS;
    }
   
    frame = &chip->rxb[chip->rxbout];
    if (copy_to_user(buf, frame, sizeof(struct can_frame))) {
        up(&chip->rxblock);
        return -EFAULT;
    }
   
    chip->rxbout++;
    if(chip->rxbout >= MCP251X_BUF_LEN)
        chip->rxbout = 0;
        
    up(&chip->rxblock);
        
    return count;
}

測(cè)試運(yùn)行時(shí)沒什么問題,但是如果User應(yīng)用程序從運(yùn)行于后臺(tái)模式,當(dāng)User應(yīng)用程序從后臺(tái)模式轉(zhuǎn)為前臺(tái)時(shí)就發(fā)生死鎖。找了很長時(shí)間都沒有找到原因。謝謝各們幫忙。

[ 本帖最后由 sleep_meng 于 2007-5-16 10:45 編輯 ]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報(bào)告]
發(fā)表于 2007-05-29 17:11 |只看該作者
http://dev.yesky.com/336/2628336.shtml

  即交換wait_event_interruptible(outq, flag != 0)和down_interruptible(&sem)的順序,這個(gè)驅(qū)動(dòng)程序?qū)⒆兊貌豢蛇\(yùn)行。實(shí)際上,當(dāng)兩個(gè)可能要阻塞的事件同時(shí)出現(xiàn)時(shí),即兩個(gè)wait_event或down擺在一起的時(shí)候,將變得非常危險(xiǎn),死鎖的可能性很大,這個(gè)時(shí)候我們要特別留意它們的出現(xiàn)順序。當(dāng)然,我們應(yīng)該盡可能地避免這種情況的發(fā)生!

論壇徽章:
3
CU大牛徽章
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大;照
日期:2013-03-13 15:38:52
3 [報(bào)告]
發(fā)表于 2007-05-29 18:28 |只看該作者
學(xué)習(xí)中……
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP