如何提供可靠的回调功能?

时间:2014-11-19 20:20:18

标签: driver osdev

在实现回调功能时,我遇到了以下问题。

当一个行为不端的被叫者不回来时,处理这种情况的好方法是什么?如何检测这种情况并继续我的常规程序流程?
直到现在我唯一的想法是创建一个执行实际回调并在一些超时后杀死它(和应用程序)的线程。

第二点是我不想让被叫者有可能乱用我的筹码。如何为被调用者提供一个干净的堆栈,并记住最终可能同时发生几次回调? 直到现在我的解决方案是以下方法。每次应用程序安装回调过程时,都必须为堆栈使用分配一些内存并提供指向它的指针。

我将非常感谢您的建设性意见和建议。

1 个答案:

答案 0 :(得分:0)

  1. 这取决于您的安全模型。如果您的被叫者信任,您无需担心。否则,我建议将其放入一个单独的过程中。
  2. 您可以对进一步的回调进行排队,直到回调函数返回。