afs_uint32 num = 0;
afs_uint32 data;
char *ptr;
- char buf[RXPERF_BUFSIZE];
+ char *buf;
*readwrite = malloc(sizeof(afs_uint32) * len);
+ buf = malloc(RXPERF_BUFSIZE);
if (*readwrite == NULL)
err(1, "malloc");
if (fclose(f) == -1)
err(1, "fclose");
+ free(buf);
}
struct client_data {
int secureindex;
int ret;
char stamp[2048];
- struct client_data params;
+ struct client_data *params;
#ifdef AFS_PTHREAD_ENV
int i;
void *status;
#endif
+ params = malloc(sizeof(struct client_data));
+ memset(params, 0, sizeof(struct client_data));
+
#ifdef AFS_NT40_ENV
if (afs_winsockInit() < 0) {
printf("Can't initialize winsock.\n");
pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_JOINABLE);
#endif
- params.conn = conn;
- params.filename = filename;
- params.command = command;
- params.times = times;
- params.bytes = bytes;
- params.sendtimes = sendtimes;
- params.recvtimes = recvtimes;
+ params->conn = conn;
+ params->filename = filename;
+ params->command = command;
+ params->times = times;
+ params->bytes = bytes;
+ params->sendtimes = sendtimes;
+ params->recvtimes = recvtimes;
switch (command) {
case RX_PERF_RPC:
#ifdef AFS_PTHREAD_ENV
for ( i=0; i<threads; i++)
- pthread_create(&thread[i], &tattr, client_thread, ¶ms);
+ pthread_create(&thread[i], &tattr, client_thread, params);
#else
- client_thread(¶ms);
+ client_thread(params);
#endif
#ifdef AFS_PTHREAD_ENV
#ifdef AFS_PTHREAD_ENV
pthread_attr_destroy(&tattr);
#endif
+
+ free(params);
}
static void