提问人:Alejandro Mujica 提问时间:6/15/2023 更新时间:6/15/2023 访问量:30
C++ 跨平台环境中 sigpause 的现代用法?
C++ Modern usage for sigpause in cross-platform environment?
问:
我正在做一些逆向工程atm,我正在处理的应用程序使用旧的POSIX线程系统,在这种情况下,它使用以下代码(为Linux制作):
while ( GameRunning() )
{
sigblock(512);
for ( i = SigUsr1Counter; !SigUsr1Counter && !SigAlarmCounter; i = SigUsr1Counter )
__sigpause(0, 0);
if ( i > 0 )
{
SigUsr1Counter = 0;
ReceiveData();
}
v2 = SigAlarmCounter;
if ( SigAlarmCounter > 0 )
{
SigAlarmCounter = 0;
AdvanceGame(Beat * v2);
}
}
诸如 __sigpause 和 sigblock 之类的函数调用,我想这是等待信号系统时的某种暂停,但是,我不知道如何使其适应现代C++并使其在 Windows 下也能正常工作。
我读过关于conditional_variable的文章,但我不相信它会完成这项工作?欢迎任何见解!对不起,如果以前有人问过这个问题,有点学习!
我尝试了这些,signalCount 在不同的线程上增加,但不确定这是否是正确的方法。
int signalCount = 0;
while (signalCount == 0) {
sleep(50);
}
答: 暂无答案
评论