void set(reactor_op_queue<socket_type>& operations, op_queue<operation>&)
 {
   reactor_op_queue<socket_type>::iterator i = operations.begin();
   while (i != operations.end())
   {
     reactor_op_queue<socket_type>::iterator op_iter = i++;
     reserve(fd_set_->fd_count + 1);
     fd_set_->fd_array[fd_set_->fd_count++] = op_iter->first;
   }
 }
 void perform(reactor_op_queue<socket_type>& operations,
     op_queue<operation>& ops) const
 {
   reactor_op_queue<socket_type>::iterator i = operations.begin();
   while (i != operations.end())
   {
     reactor_op_queue<socket_type>::iterator op_iter = i++;
     if (is_set(op_iter->first))
       operations.perform_operations(op_iter, ops);
   }
 }
 void set(reactor_op_queue<socket_type>& operations, op_queue<operation>& ops)
 {
   reactor_op_queue<socket_type>::iterator i = operations.begin();
   while (i != operations.end())
   {
     reactor_op_queue<socket_type>::iterator op_iter = i++;
     if (!set(op_iter->first))
     {
       boost::system::error_code ec(error::fd_set_failure);
       operations.cancel_operations(op_iter, ops, ec);
     }
   }
 }
 void perform(reactor_op_queue<socket_type>& operations,
     op_queue<operation>& ops) const
 {
   for (u_int i = 0; i < fd_set_->fd_count; ++i)
     operations.perform_operations(fd_set_->fd_array[i], ops);
 }