long long sorry_maxconnection;
char sorry_endpoint[48];
bool sorry_flag;
+ unsigned int sorry_fwdmode;
unsigned long long qos_up;
unsigned long long qos_down;
};
//! Operation timed out value
const static int OPERATION_TIMEOUT = 1;
//! wait interval for rs_ref_count check
- const static int REFCOUNT_WAIT_INTERVAL = 10000;
+ const static int REFCOUNT_WAIT_INTERVAL = 10; // msec
const static int SCHEDULER_PRIORITY = 20;
protected:
rep_data_ptr->sorry_maxconnection = element.sorry_maxconnection;
strncpy(rep_data_ptr->sorry_endpoint, tmp_sorry_ep.str().c_str(), 48);
rep_data_ptr->sorry_flag = element.sorry_flag;
+ rep_data_ptr->sorry_fwdmode = element.sorry_fwdmode;
rep_data_ptr->qos_up = element.qos_upstream;
rep_data_ptr->qos_down = element.qos_downstream;
element.sorry_endpoint =
tcp_endpoint_type(boost::asio::ip::address::from_string(ipaddr), portno);
element.sorry_flag = rep_data_ptr->sorry_flag;
+ element.sorry_fwdmode = (virtualservice_element::SORRYSERVER_FWDMODE_TAG)(rep_data_ptr->sorry_fwdmode);
element.qos_upstream = rep_data_ptr->qos_up;
element.qos_downstream = rep_data_ptr->qos_down;
break;
rw_scoped_lock inc_lock(rs_list_ref_count_inc_mutex);
//waiting, rs_list_ref_count become 0
- boost::xtime interval;
- boost::mutex mtx;
- boost::condition cond;
-
- interval.nsec = virtualservice_base::REFCOUNT_WAIT_INTERVAL;
- boost::mutex::scoped_lock lk(mtx);
while (rs_list_ref_count != 0ULL) {
- cond.timed_wait(lk, interval);
+ boost::this_thread::sleep(
+ boost::posix_time::milliseconds(virtualservice_base::REFCOUNT_WAIT_INTERVAL)
+ );
}
//check duplication realserver
rw_scoped_lock inc_lock(rs_list_ref_count_inc_mutex);
//waiting, rs_list_ref_count become 0
- boost::xtime interval;
- boost::mutex mtx;
- boost::condition cond;
-
- interval.nsec = virtualservice_base::REFCOUNT_WAIT_INTERVAL;
- boost::mutex::scoped_lock lk(mtx);
while (rs_list_ref_count != 0ULL) {
- cond.timed_wait(lk, interval);
+ boost::this_thread::sleep(
+ boost::posix_time::milliseconds(virtualservice_base::REFCOUNT_WAIT_INTERVAL)
+ );
}
virtualservice_element &in_element = const_cast<virtualservice_element &>(in);
rw_scoped_lock inc_lock(rs_list_ref_count_inc_mutex);
//waiting, rs_list_ref_count become 0
- boost::xtime interval;
- boost::mutex mtx;
- boost::condition cond;
-
- interval.nsec = virtualservice_base::REFCOUNT_WAIT_INTERVAL;
- boost::mutex::scoped_lock lk(mtx);
while (rs_list_ref_count != 0ULL) {
- cond.timed_wait(lk, interval);
+ boost::this_thread::sleep(
+ boost::posix_time::milliseconds(virtualservice_base::REFCOUNT_WAIT_INTERVAL)
+ );
}
virtualservice_element &in_element = const_cast<virtualservice_element &>(in);