如果守护程序失败一次,则MacO CGDisplayIsActive()总是会失败

时间:2013-05-29 23:40:00

标签: macos daemon quartz-graphics

我有一个需要守护程序进程的项目才能在启动时访问Mac显示器。我发现当守护进程第一次出现时,所有MacO CGDisplay ...访问例程都会失败。如果我睡了一会儿,那么他们工作正常。

我以为我可以尝试这样的事情:

while (!CGDisplayIsActive(CGMainDisplayID())) {

    if ( ++errCnt == 20 ) {
        trace(0,"CGDisplayIsActive never went true\n");
        return -1;
    }
    trace(0,"display not active on count errCnt %d\n", errCnt);
    sleep(5);
};

但是一旦CGDisplayIsActive例程失败,似乎永远不会返回成功。

这有效,但肯定有更好的方法:

   if (!CGDisplayIsActive(CGMainDisplayID())) {
    trace(0,"CGDisplayIsActive not true, wait a bit and then let launchd start again\n");
    sleep(5); 
    exit(0);
   }

有没有办法等待显示服务变为活动状态?

TFYS

0 个答案:

没有答案