I see in a few places in ob1 we do things like this:
Why do we do this? req_state is technically an enum value, so we
shouldn't be adding/subtracting to it (granted, it looks like the enum
values were carefully chosen to allow this). Additionally, req_state
is volatile; the atomics shouldn't be necessary.
Is there some other non-obvious reason?
Also, I see this in a few places:
req->req_state = 2;
which really should be
req->req_state = OMPI_REQUEST_ACTIVE;