Hey all,

I'm getting a segmentation fault when I attempt to receive a single
character via MPI_Irecv. Code follows:

void recv_func() {
                if( !MASTER ) {
                        char            buffer[ 1 ];
                        int             flag;
                        MPI_Request request;
                        MPI_Status      status;

                        MPI_Irecv( &buffer, 1, MPI_CHAR, 0, MPI_ANY_TAG, 
MPI_COMM_WORLD, &request);
                        MPI_Test( &request, &flag, &status );

                       if( flag ) {
                          //do work
                      }
                }
}


void send_func( unsigned char c ) {     
         if( MASTER ) {
                int totalNodes, int node, flag;
                unsigned char buffer[] = { c };
                MPI_Request request;
                MPI_Status status;      
                MPI_Comm_size( MPI_COMM_WORLD, &totalNodes );

                for ( node = 1; node < totalNodes; node++ ) {
                    MPI_Isend( &buffer, 1, MPI_CHAR, node, 0, MPI_COMM_WORLD, 
&request );
                }
         }
}

The segfault disappears if I comment out the MPI_Irecv call in
recv_func so I'm assuming that there's something wrong with the
parameters that I'm passing to it. Thoughts?

Thanks,
Everette

Reply via email to