static rpcs *server; // server rpc object
static rpcc *clients[NUM_CL]; // client rpc object
-static string dst; //server's ip address
+static string * dst; //server's ip address
static in_port_t port;
using std::cout;
}
int srv::handle_slow(int & r, const int a) {
- usleep(random() % 500);
+ usleep(std::uniform_int_distribution<useconds_t>(0,500)(global->random_generator));
r = a + 2;
return 0;
}
size_t which_cl = cl % NUM_CL;
for(int i = 0; i < 100; i++){
- unsigned long arg = (random() % 2000);
+ auto arg = std::uniform_int_distribution<unsigned long>(0,2000)(global->random_generator);
string rep;
int ret = clients[which_cl]->call(srv_protocol::bigrep, rep, arg);
VERIFY(ret == 0);
// test rpc replies coming back not in the order of
// the original calls -- i.e. does xid reply dispatch work.
for(int i = 0; i < 100; i++){
- int which = (random() % 2);
- int arg = (random() % 1000);
+ bool which = std::bernoulli_distribution()(global->random_generator);
+ int arg = std::uniform_int_distribution<>(0,1000)(global->random_generator);
int rep = -1;
auto start = steady_clock::now();
time(&t1);
while(time(0) - t1 < 10){
- unsigned long arg = (random() % 2000);
+ auto arg = std::uniform_int_distribution<unsigned long>(0,2000)(global->random_generator);
string rep;
int ret = clients[which_cl]->call(srv_protocol::bigrep, rep, arg);
if ((unsigned long)rep.size()!=arg)
for (int i = 0; i < NUM_CL; i++) {
delete clients[i];
- clients[i] = new rpcc(dst);
+ clients[i] = new rpcc(*dst);
VERIFY(clients[i]->bind()==0);
}
delete server;
- client1 = new rpcc(dst);
+ client1 = new rpcc(*dst);
VERIFY (client1->bind(milliseconds(3000)) < 0);
cout << " -- create new client and try to bind to failed server .. failed ok" << endl;
delete client;
- clients[0] = client = new rpcc(dst);
+ clients[0] = client = new rpcc(*dst);
VERIFY (client->bind() >= 0);
VERIFY (client->bind() < 0);
delete client;
startserver();
- clients[0] = client = new rpcc(dst);
+ clients[0] = client = new rpcc(*dst);
VERIFY (client->bind() >= 0);
cout << " -- delete existing rpc client and server, create replacements.. ok" << endl;
bool isclient = false;
bool isserver = false;
- srandom((uint32_t)getpid());
port = 20000 + (getpid() % 10000);
int ch = 0;
}
if (debug_level > 0) {
- DEBUG_LEVEL = debug_level;
+ global->DEBUG_LEVEL = debug_level;
IF_LEVEL(1) LOG_NONMEMBER << "DEBUG LEVEL: " << debug_level;
}
if (isclient) {
// server's address.
- dst = "127.0.0.1:" + std::to_string(port);
+ dst = new string("127.0.0.1:" + std::to_string(port));
// start the client. bind it to the server.
// be only one rpcc per process. you probably need one
// rpcc per server.
for (int i = 0; i < NUM_CL; i++) {
- clients[i] = new rpcc(dst);
+ clients[i] = new rpcc(*dst);
VERIFY (clients[i]->bind() == 0);
}