看板 LinuxDev 關於我們 聯絡資訊
借一下這個連結的例子 http://bbs.chinaunix.net/forum.php?mod=viewthread&action=printable&tid=784492 {u32 i; u16 *buff1; u32 *buff2; buff2=kmalloc(128,GFP_KERNEL); wait_event_interruptible(wq,flags!=0); .............................. } 在中断处理函数中 { printk("interrupt 5 is working\n"); flags=1; wake_up_interruptible(&wq); } 請問在這情況下 flag=1和wake_up_interruptible是否需要用spin lock包起來呢?? -- http://blog.carlcarl.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.184.171
mayasky:我覺得不用,flag亂插也只有一個值,WQ空了也不會怎樣 04/30 00:26
carlcarl:是想說如果在中間的時候 在別的地方剛好把flag設成0 04/30 12:56
carlcarl:這樣好像會有問題(?) 04/30 12:56
mayasky:那這樣為何要包著WAKE UP?你需要的似乎是ATOMIC運算而不 05/01 00:10
mayasky:不是CRITICAL SECTION 05/01 00:10
carlcarl:atomic運算? 可以請問一下譬如哪些嗎@@" 05/01 23:01