BSD 4_4_Lite1 development
[unix-history] / usr / src / contrib / mprof / test2.c
#include <stdio.h>
extern long random();
int
random_flip()
{
int r = random();
return (r >> 10) & 0x1;
}
enum color { BLUE, RED};
typedef struct {
enum color c;
int data[50];
} widgit;
widgit
*make_widgit()
{
widgit *w;
w = (widgit *) malloc(sizeof(widgit));
return w;
}
widgit
*make_blue_widgit()
{
widgit *w;
w = make_widgit();
w->c = BLUE;
return w;
}
widgit
*make_red_widgit()
{
widgit *w;
w = make_widgit();
w->c = RED;
return w;
}
void
consume_widgit(w)
widgit *w;
{
if (w->c == BLUE) {
/* record blue widgit */
free(w);
} else {
/* record red widgit */
}
}
#define NUM_WIDGITS 10000
int
main()
{
int i;
widgit *wqueue[NUM_WIDGITS];
/*
extern int keeping_leaks;
keeping_leaks = 0;
*/
for (i = 0; i < NUM_WIDGITS; i++)
if (random_flip())
wqueue[i] = make_blue_widgit();
else
wqueue[i] = make_red_widgit();
for (i = 0; i < NUM_WIDGITS; i++)
consume_widgit(wqueue[i]);
return 0;
}