• 第32月第30天 runloop阻塞线程 超时 cmake


    1. runloop阻塞线程 超时

    bool CvCaptureCAM::grabFrame(double timeOut) {
    
        NSAutoreleasePool* localpool = [[NSAutoreleasePool alloc] init];
        double sleepTime = 0.005;
        double total = 0;
    
        // If the capture is launched in a separate thread, then
        // [NSRunLoop currentRunLoop] is not the same as in the main thread, and has no timer.
        //see https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsrunloop_Class/Reference/Reference.html
        // "If no input sources or timers are attached to the run loop, this
        // method exits immediately"
        // using usleep() is not a good alternative, because it may block the GUI.
        // Create a dummy timer so that runUntilDate does not exit immediately:
        [NSTimer scheduledTimerWithTimeInterval:100 target:nil selector:@selector(doFireTimer:) userInfo:nil repeats:YES];
        while (![capture updateImage] && (total += sleepTime)<=timeOut) {
            [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:sleepTime]];
        }
    
        [localpool drain];
    
        return total <= timeOut;
    }

     2.cmake

    、cmake编译

    cd opencv-3.4.1
    mkdir build
    cd build
    
    # 注意,下面是一条指令,部分环境下可能显示成两行,看起来像两行
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/pascal/software/opencv341 ..
    

    得到结果

    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/pascal/downloads/opencv-3.4.1/build
    

    4、make编译

    make
  • 相关阅读:
    第一天站立会议
    Sprint会议计划
    软件需求分析
    团队介绍
    再写行转列和列转行
    二十三种设计模式之:组合(Composite)模式(部分·整体模式)
    对于类和对象的认识
    对排序的认识
    设计模式分类
    二十三种设计模式之:适配器模式
  • 原文地址:https://www.cnblogs.com/javastart/p/10949069.html
Copyright © 2020-2023  润新知