]> git.donarmstrong.com Git - rsem.git/blobdiff - utils.h
relax the requirement about GTF attribute format
[rsem.git] / utils.h
diff --git a/utils.h b/utils.h
index 0991fb95333a3eb37111d1968465655f95fb34cf..4fa0750f9773cb5059c268d2d7ac7abac6557f10 100644 (file)
--- a/utils.h
+++ b/utils.h
@@ -10,6 +10,7 @@
 #include<cassert>
 #include<string>
 #include<vector>
+#include<cerrno>
 
 const int STRLEN = 10005 ;
 const double EPSILON = 1e-300;
@@ -161,4 +162,26 @@ void exitWithError(const char* errmsg) {
        exit(-1);
 }
 
+void pthread_exception(int rc) {
+       switch(rc) {
+       case EAGAIN:
+               fprintf(stderr, "Error code: EAGAIN. Insufficient resources to create another thread, or a system-imposed limit on the number of threads was encountered.\n");
+               break;
+       case EINVAL:
+               fprintf(stderr, "Error code: EINVAL. Invalid settings in attr if pthread_create() is called. Or the implementation has detected that the value specified by thread_id does not refer to a joinable thread if pthread_join() is called.\n");
+               break;
+       case EPERM:
+               fprintf(stderr, "Error code: EPERM. No permission to set the scheduling policy and parameters specified in attr.\n");
+               break;
+       case EDEADLK:
+               fprintf(stderr, "Error code: EDEADLK. A deadlock was detected (e.g., two threads tried to join with each other); or thread_id specifies the calling thread.");
+               break;
+       case ESRCH:
+               fprintf(stderr, "Error code: ESRCH. No thread with thread_id could be found.\n");
+               break;
+       default: fprintf(stderr, "Unknown error code: %d\n", rc);
+       }
+       exit(-1);
+}
+
 #endif