Boost-users] [asio]about reactor_op_queue dead loop

I call boost::asio::async_write, finally it call "bool enqueue_operation(Descriptor descriptor, Operation operation)" In this function , there is code as flow: while (current_op->next_) current_op = current_op->next_; My process execute it for ever. Using gdb to attach the prcocess, I find : 68 while (current_op->next_) (gdb) p current_op $8 = (class boost::asio::detail::reactor_op_queue<int>::op_base *) 0x93381c8 (gdb) p current_op->next_ $9 = (class boost::asio::detail::reactor_op_queue<int>::op_base *) 0x93381c8 current_op and current_op->next_ is the same address. how did it come true? I have no any clue. Anyone can offer some suggestion?

have resolved!
when async_write, I use the same custom memory in two thread.
2010/1/13 victor
I call boost::asio::async_write, finally it call "bool enqueue_operation(Descriptor descriptor, Operation operation)"
In this function , there is code as flow: while (current_op->next_) current_op = current_op->next_;
My process execute it for ever. Using gdb to attach the prcocess, I find : 68 while (current_op->next_) (gdb) p current_op $8 = (class boost::asio::detail::reactor_op_queue<int>::op_base *) 0x93381c8 (gdb) p current_op->next_ $9 = (class boost::asio::detail::reactor_op_queue<int>::op_base *) 0x93381c8
current_op and current_op->next_ is the same address.
how did it come true? I have no any clue. Anyone can offer some suggestion?
participants (1)
-
victor