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