diff options
Diffstat (limited to 'src/error.cc')
| -rw-r--r-- | src/error.cc | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/src/error.cc b/src/error.cc index b166042..4e3f045 100644 --- a/src/error.cc +++ b/src/error.cc @@ -30,12 +30,21 @@ Error::Error()  {    // Initialize    lastError = NULL; + +  pthread_mutex_init (&mutex, NULL);  }  Error::~Error()  {  } +/* +      pthread_mutex_lock(&mutex); +      // ... do something +      pthread_mutex_unlock(&mutex); + + */ +  bool Error::hasError()  {    return lastError != NULL; @@ -52,17 +61,20 @@ string Error::popAllErrorStrings()  string Error::popErrorString()  { +  pthread_mutex_lock(&mutex);    if(lastError == NULL) return string("");    _err_entry *err = lastError;    string le = err->errstr;    lastError = err->prev;    delete err; +  pthread_mutex_unlock(&mutex);    return le;  }  void Error::pushError(char* errstr)  { +  pthread_mutex_lock(&mutex);    printf("New Error: [%s]\n", errstr);    _err_entry *err = new _err_entry; @@ -70,19 +82,21 @@ void Error::pushError(char* errstr)    err->errstr = errstr;    err->prev = lastError;    lastError = err; +  pthread_mutex_unlock(&mutex);  }  void Error::pushError(string &errstr)  { +  pthread_mutex_lock(&mutex);    _err_entry *err = new _err_entry;    err->errstr = errstr;    err->prev = lastError;    lastError = err; +  pthread_mutex_unlock(&mutex);  }  void Error::removeAllErrors()  {    while(lastError) popErrorString(); -    } | 
