get_sec(0, &secureobj, &secureindex);
- conn = rx_NewConnection(addr, htons(port), RX_SERVER_ID, secureobj, secureindex);
- if (conn == NULL)
- errx(1, "failed to contact server");
-
-#ifdef AFS_PTHREAD_ENV
- pthread_attr_init(&tattr);
- pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_JOINABLE);
-#endif
-
- params->conn = conn;
- params->filename = filename;
- params->command = command;
- params->times = times;
- params->bytes = bytes;
- params->sendbytes = sendbytes;
- params->readbytes = readbytes;
-
switch (command) {
case RX_PERF_RPC:
sprintf(stamp, "RPC: threads\t%d, times\t%d, write bytes\t%d, read bytes\t%d",
break;
}
+ conn = rx_NewConnection(addr, htons(port), RX_SERVER_ID, secureobj, secureindex);
+ if (conn == NULL)
+ errx(1, "failed to contact server");
+
+#ifdef AFS_PTHREAD_ENV
+ pthread_attr_init(&tattr);
+ pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_JOINABLE);
+#endif
+
+ params->conn = conn;
+ params->filename = filename;
+ params->command = command;
+ params->times = times;
+ params->bytes = bytes;
+ params->sendbytes = sendbytes;
+ params->readbytes = readbytes;
+
start_timer();
#ifdef AFS_PTHREAD_ENV
- for ( i=0; i<threads; i++)
+ for ( i=0; i<threads; i++) {
pthread_create(&thread[i], &tattr, client_thread, params);
+ if ( (i + 1) % RX_MAXCALLS == 0 ) {
+ conn = rx_NewConnection(addr, htons(port), RX_SERVER_ID, secureobj, secureindex);
+ if (conn != NULL) {
+ struct client_data *new_params = malloc(sizeof(struct client_data));
+ memcpy(new_params, params, sizeof(struct client_data));
+ new_params->conn = conn;
+ params = new_params;
+ }
+ }
+ }
#else
client_thread(params);
#endif