forked from rarias/bscpkgs
		
	The current srun version used in MN4 returns 0 if the program crashes after MPI_Finalize, as shown by this test.
		
			
				
	
	
		
			36 lines
		
	
	
		
			600 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			600 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <mpi.h>
 | |
| #include <stdio.h>
 | |
| #include <signal.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| void sigsegv(int rank)
 | |
| {
 | |
|         if (rank == 2) raise(SIGSEGV);
 | |
| }
 | |
| 
 | |
| int main(int argc, char *argv[])
 | |
| {
 | |
|         int rank;
 | |
|         char where;
 | |
| 
 | |
|         MPI_Init(&argc, &argv);
 | |
| 
 | |
|         if(!argv[1])
 | |
|         {
 | |
|                 fprintf(stderr, "missing \"before\" or \"after\" argument\n");
 | |
|                 exit(1);
 | |
|         }
 | |
| 
 | |
|         MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 | |
| 
 | |
|         where = argv[1][0];
 | |
| 
 | |
|         if(where == 'b') sigsegv(rank);
 | |
| 
 | |
|         MPI_Finalize();
 | |
| 
 | |
|         if(where == 'a') sigsegv(rank);
 | |
| 
 | |
|         return 0;
 | |
| }
 |