Hi All,
I was able to overcome the earlier problem by using "probe()" function and 
checking if the return value is initialized or not:
optional<std::pair<int,int>>  ret = 
*((*g).process_group()).probe();
if(ret)
{
    //process message
}
else
{
//perform other local computation
}

Thanks,
Nikhil


From: [email protected]
Sent: Fri, 23 May 2014 21:30:26 
To: [email protected]
Subject: Boost-mpi Digest, Vol 12, Issue 6
Send Boost-mpi mailing list submissions to

   [email protected]



To subscribe or unsubscribe via the World Wide Web, visit

   http://lists.boost.org/mailman/listinfo.cgi/boost-mpi

or, via email, send a message with subject or body 'help' to

   [email protected]



You can reach the person managing the list at

   [email protected]



When replying, please edit your Subject line so it is more specific

than "Re: Contents of Boost-mpi digest..."





Today's Topics:



   1. Use of poll member function of mpi_process_group

      (nikhil deveratha hegde)





----------------------------------------------------------------------



Message: 1

Date: 22 May 2014 17:24:25 -0000

From: "nikhil deveratha hegde" <[email protected]>

To: "[email protected]" <[email protected]>

Subject: [Boost-mpi] Use of poll member function of mpi_process_group

Message-ID: <[email protected]>

Content-Type: text/plain; charset="utf-8"



Hi All,

I am trying to use the poll function (asynchronous version) in this way:



*(g->process_group()).poll(false);



However, I get an assertion failure:

=============================

/usr/local/include/boost/optional/optional.hpp:631: typename 
boost::optional_detail::optional_base<T>::reference_type 
boost::optional<T>::get() [with T = std::pair<int, 
int>]: Assertion `this->is_initialized()' failed.

=============================



I understand that poll function returns the optional<T> object 
and one can check the status of this object to see if an 
initialized/uninitialized object is returned. I tried doing something like:



optional<std::pair<int,int>> 
retval(*(g->process_group()).poll(false))



But still saw the assertion failure. 



Could anyone please tell me if there is a problem with the way I have built the 
parallel BGL library or if my way of using this function is incorrect? I am 
using parallel BGL version 0.7.0.



I would greatly appreciate any hints, solutions.



Thanks,



Nikhil

-------------- next part --------------

HTML attachment scrubbed and removed



------------------------------



Subject: Digest Footer



_______________________________________________

Boost-mpi mailing list

[email protected]

http://lists.boost.org/mailman/listinfo.cgi/boost-mpi





------------------------------



End of Boost-mpi Digest, Vol 12, Issue 6

****************************************

_______________________________________________
Boost-mpi mailing list
[email protected]
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi

Reply via email to