zoukankan      html  css  js  c++  java
  • 第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
  • 相关阅读:
    Flume 读取实时更新的日志文件
    一些关于Flume收集日志的资料
    Java Pattern Matcher 正则表达式需要转义的字符
    多播 & multicast
    branch prediction
    一时紧张简单题都没做好,哈
    海量数据求中位数
    继续过Hard题目.0207
    压力工具代码及epoll使用
    C++里面mutable的作用
  • 原文地址:https://www.cnblogs.com/javastart/p/10949069.html
Copyright © 2011-2022 走看看