MCPcopy Create free account
hub / github.com/VirtualGL/virtualgl / run

Method run

common/frameut.cpp:368–402  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

366 private:
367
368 void run(void)
369 {
370 int index = 0;
371 try
372 {
373 while(!deadYet)
374 {
375 Frame &frame = frames[index];
376 index = (index + 1) % NFRAMES;
377 frame.waitUntilReady(); if(deadYet) break;
378 #ifdef USEXV
379 if(useXV)
380 {
381 XVFrame *xvframe = (XVFrame *)blitter->get(); if(deadYet) break;
382 *xvframe = frame;
383 blitter->put(xvframe);
384 }
385 else
386 #endif
387 {
388 CompressedFrame &cframe = decompressor->get(); if(deadYet) break;
389 cframe = frame;
390 decompressor->put(cframe);
391 }
392 frame.signalComplete();
393 }
394 }
395 catch(std::exception &e)
396 {
397 if(thread) thread->setError(e);
398 for(int i = 0; i < NFRAMES; i++) frames[i].signalComplete();
399 throw;
400 }
401 fprintf(stderr, "Compressor exiting ...\n");
402 }
403
404 int findex; bool deadYet;
405 Thread *thread;

Callers

nothing calls this directly

Calls 5

signalCompleteMethod · 0.80
setErrorMethod · 0.80
waitUntilReadyMethod · 0.45
getMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected