LinuxDev 板


LINE

大家好 想询问有关 signal loss 的问题 就是如果同一时间有多个讯号发送 , 有捕捉到的讯号就执行 handler 做接下来的工作 但是似乎总会有几个讯号会 loss 掉 例如 : 先设定好 struct sigaction action 及 handler static void say(int sig){ if(sig == SIGUSR1){ printf("new process created\n"); } } sigemptyset(&action.sa_mask); action.sa_flags = 0; action.sa_handler = say; sigaction(SIGUSR1 , &action , NULL); 接着 /*parent process ID*/ pid_t pp = getpid(); pid_t child; /*fork 三次*/ for(int i=0 ; i<3 ; i++){ switch(child = fork()){ case (-1):{ perror("fork error\n"); exit(1); break; } case 0:{ if( kill(pp , SIGUSR1)){ printf("signal send error\n"); } break; } } } /*child processes all terminated*/ if( getpid() != pp ){ _exit(0); } while(1){}; 也就是说只要有新的 fork process 都会发 SIGUSR1 给 parent process 总共会有七个 child process , 但是每次执行 , handler 有处理的次数都不一样 查了一下似乎是因为同一时间 , handler 在处理先到的讯号的时候 , 会忽略後来的讯号 , 但是 handler 处理完之後 , 似乎 SIGUSR1 也没有重发 想请问有甚麽方法可以确实的接收到每一个发出的讯号 , 以及触发执行 handler 吗? 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.195.25
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1531335787.A.84F.html ※ 编辑: shiningboy (42.73.195.25), 07/12/2018 03:12:10
1F:→ leolarrel: 我的想法是handler处理越短越好,可以学kernel,中断hand 07/12 14:54
2F:→ leolarrel: er只做最少的事情,然後pass给thread或另一个task负责接 07/12 14:54
3F:→ leolarrel: 下来的工作,原来的hander就不会被咬着 07/12 14:55
4F:推 Qbsuran: 给你关键字 signal block和signalfd() 07/12 18:44
5F:推 Qbsuran: The linux programming interface有提到这问题 如果你的 07/12 18:55
6F:→ Qbsuran: process在排进CPU前同个讯号同时多个抵达 他只能保证至 07/12 18:55
7F:→ Qbsuran: 少一个送到 07/12 18:55







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP