首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么让signal.signal阻塞了很长时间?

是什么让signal.signal阻塞了很长时间?
EN

Stack Overflow用户
提问于 2012-03-30 14:50:09
回答 1查看 67关注 0票数 2

我正在为远程调试注册一个信号:

signal.signal(signal.SIGUSR1,lambda x,y: remote_debug(x,y,emp_id))

虽然通常非常快,但日志语句显示此命令(register)有时需要5到10秒才能执行。是什么导致了这种情况?我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2012-03-30 16:32:52

Python回调代码实际上并不是在Python中立即调用的。Python中的C代码只是在收到信号时设置一个标志。它只在返回到解释器时才运行处理程序。如果您的代码路径当前在已编译代码中的扩展模块中工作,则处理程序在完成之前不会运行。

解决这个问题的唯一方法是确保执行路径不会在C函数中花费太多时间。您当时运行的是什么函数?另一个罪魁祸首是标准的time.sleep()方法。请改用signal.pause()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9938238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档