Check the return value of pthread_create. Update the docs with known issue on Loongson 3A.
This commit is contained in:
		
							parent
							
								
									dc9c69db93
								
							
						
					
					
						commit
						3c856c0c1a
					
				
							
								
								
									
										1
									
								
								README
								
								
								
								
							
							
						
						
									
										1
									
								
								README
								
								
								
								
							| 
						 | 
					@ -72,6 +72,7 @@ Please see Changelog.txt to obtain the differences between GotoBLAS2 1.13 BSD ve
 | 
				
			||||||
9.Known Issues
 | 
					9.Known Issues
 | 
				
			||||||
* The number of CPUs/Cores should less than or equal to 8*sizeof(unsigned long). On 64 bits, the limit 
 | 
					* The number of CPUs/Cores should less than or equal to 8*sizeof(unsigned long). On 64 bits, the limit 
 | 
				
			||||||
  is 64. On 32 bits, it is 32.
 | 
					  is 64. On 32 bits, it is 32.
 | 
				
			||||||
 | 
					* On Loongson 3A. make test would be failed because of pthread_create error. The error code is EAGAIN. However, it will be OK when you run the same testcase on shell. I don't think this is a bug in OpenBLAS. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
10. Specification of Git Branches
 | 
					10. Specification of Git Branches
 | 
				
			||||||
We used the git branching model in this article (http://nvie.com/posts/a-successful-git-branching-model/). 
 | 
					We used the git branching model in this article (http://nvie.com/posts/a-successful-git-branching-model/). 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -500,6 +500,7 @@ static int blas_monitor(void *arg){
 | 
				
			||||||
/* Initializing routine */
 | 
					/* Initializing routine */
 | 
				
			||||||
int blas_thread_init(void){
 | 
					int blas_thread_init(void){
 | 
				
			||||||
  BLASLONG i;
 | 
					  BLASLONG i;
 | 
				
			||||||
 | 
					  int ret;
 | 
				
			||||||
#ifdef NEED_STACKATTR
 | 
					#ifdef NEED_STACKATTR
 | 
				
			||||||
  pthread_attr_t attr;
 | 
					  pthread_attr_t attr;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -545,12 +546,16 @@ int blas_thread_init(void){
 | 
				
			||||||
      pthread_cond_init (&thread_status[i].wakeup, NULL);
 | 
					      pthread_cond_init (&thread_status[i].wakeup, NULL);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
#ifdef NEED_STACKATTR
 | 
					#ifdef NEED_STACKATTR
 | 
				
			||||||
      pthread_create(&blas_threads[i], &attr, 
 | 
					      ret=pthread_create(&blas_threads[i], &attr, 
 | 
				
			||||||
		     (void *)&blas_thread_server, (void *)i);
 | 
							     (void *)&blas_thread_server, (void *)i);
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
      pthread_create(&blas_threads[i], NULL, 
 | 
					      ret=pthread_create(&blas_threads[i], NULL, 
 | 
				
			||||||
		     (void *)&blas_thread_server, (void *)i);
 | 
							     (void *)&blas_thread_server, (void *)i);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					      if(ret!=0){
 | 
				
			||||||
 | 
						fprintf(STDERR,"OpenBLAS: pthread_creat error in blas_thread_init function. Error code:%d\n",ret);
 | 
				
			||||||
 | 
						exit(1);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef MONITOR
 | 
					#ifdef MONITOR
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue