看门狗内置到相同的处理程序它控制
-
21-09-2019 - |
题
我运行日常构建内部一个Visual C ++控制台测试程序。每一个现在,则测试将调用,是由其他开发人员不当改变了一些功能,陷入无限循环,并挂从而阻断构建。
我需要一个看门狗溶液尽可能简单。以下是我想出了。在测试程序的入口点,我开始一个单独的线程循环时间可持续和检查经过的时间。如果超过了一些预定义的时期,它调用了TerminateProcess()。伪代码:
DWORD WatchDog( LPVOID)
{
DWORD start = GetTickCount();
while( true ) {
Sleep( ReasonablePeriod );
if( GetTickCount() - start > MaxAllowed ) {
TerminateProcess( GetCurrentProcess(), 0 );
}
}
return 0;
}
这是溶液不是作为单独的主程序实现的监视程序的任何差?
解决方案
我认为这是优选的实施看门狗作为一个单独的过程。它更容易重新使用它,它更容易发现,如果你的应用程序崩溃,并获得它的返回码。
不隶属于 StackOverflow