Changeset 2578 for trunk/packages


Ignore:
Timestamp:
Sep 26, 2011, 12:49:33 PM (13 years ago)
Author:
ldelgass
Message:

In vtkvis writer thread: if sem_wait fails (interrupted), check for empty queue
and re-enter loop.

Location:
trunk/packages/vizservers/vtkvis
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/vtkvis/ResponseQueue.cpp

    r2573 r2578  
    7070ResponseQueue::dequeue()
    7171{
    72     Response *response;
     72    Response *response = NULL;
    7373
    7474    if (sem_wait(&_ready) < 0) {
     
    7777    if (pthread_mutex_lock(&_idle) != 0) {
    7878        ERROR("can't lock mutex: %s", strerror(errno));
    79     }   
    80     response = _list.front();
    81     _list.pop_front();
     79    }
     80    if (_list.empty()) {
     81        ERROR("Empty queue");
     82    } else {
     83        response = _list.front();
     84        _list.pop_front();
     85    }
    8286    if (pthread_mutex_unlock(&_idle) != 0) {
    8387        ERROR("can't unlock mutex: %s", strerror(errno));
  • trunk/packages/vizservers/vtkvis/RpVtkRenderServer.cpp

    r2573 r2578  
    274274        Response *response;
    275275
    276         response = queue->dequeue();
     276        response = queue->dequeue();
     277        if (response == NULL)
     278            continue;
    277279        if (fwrite(response->message(), sizeof(char), response->length(),
    278280                   g_fOut) != response->length()) {
  • trunk/packages/vizservers/vtkvis/RpVtkRendererCmd.cpp

    r2575 r2578  
    1313#include <sstream>
    1414#include <unistd.h>
     15#include <sys/select.h>
    1516#include <sys/uio.h>
    16 #include <fcntl.h>
    1717#include <tcl.h>
    1818
Note: See TracChangeset for help on using the changeset viewer.