2016-08-15 104 views
0

我正在使用NaCl寫一個屏幕記錄器,在一個線程內我想打開一個文件。該文件需要一些時間才能打開。我想阻止fopen直到完成,然後移動到下一行代碼。我試圖使用pp::BlockUntilComplete()但它沒有解決。在繼續前進之前,確保fopen完成的解決方案是什麼?Nacl_IO阻塞線程,直到fopen完成

我嘗試相同的代碼之後的某個時間(直到線程結束了,它的工作)

Calling thread 
    video_track_.GetFrame(m_callback_factory.NewCallbackWithOutput(
     &EncoderInstance::OnGetFrame)); 



Called function 

void EncoderInstance::OnGetFrame(
    int32_t result, pp::VideoFrame frame) { 
    if (result != PP_OK) 
    return; 



    outfile = fopen("/persistent/cuc_ieschool.ivf", "wb"); 
if(outfile==NULL){ 
    PostMessage("Can not open output file\n"); 
    return; 
} 

回答

0

你不能在主線程阻塞。你有沒有嘗試設置另一個線程和消息循環,並在那裏進行阻塞呼叫?

+0

我創建了一個新的線程,但我無法弄清楚如何阻止這個調用,即使這個調用是在一個線程中。我只是不知道如何阻止通話 –

相關問題