All pastes #944589 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-03-16 06:55 UTC
rendered paste body
#include <stdio.h>
//#include <unistd.h>
#include <sys/types.h>
//#include <sys/wait.h>
//#include <stdlib.h>

#include <pthread.h>

#define NUMTHREADS 50


// calls compatible w/ pthreads
void* create_group(void* args);
void* destroy_group(void* args);
void* join_group(void* args);
void* create_box(void* args);
void* destroy_box(void* args);
void* write_box(void* args);
void* read_box(void* args);
void* clear_box(void* args);

// argument structs for the above calls
struct create_group_args {int type;char name[9];uid_t uid;int perms;};
struct destroy_group_args {int type;char name[9];uid_t uid;};
struct join_group_args {char name[9];pid_t pid;};
struct create_box_args {int type;char name[256];uid_t uid;int perms;};
struct destroy_box_args {int type;char name[256];uid_t uid;};
struct write_box_args {int type;char name[256];uid_t uid;char* message;int flag;};
struct read_box_args {int type;char name[256];uid_t uid;char* message;int len;int flag;};
struct clear_box_args {int type;char name[256];uid_t uid;};

void* create_group(void *args)
{
	struct create_group_args* a = (create_group_args*)args;
	int retval = create_mboxgr(a->type, a->name, a->uid, a->perms);
	return (void*)retval;
}

void* destroy_group(void *args)
{
	struct destroy_group_args* a = (destroy_group_args*) args;
	int retval = destroy_mboxgr(a->type, a->name, a->uid);
	return (void*)retval;
}

void* join_group(void *args)
{
	struct join_group_args* a = (join_group_args*) args;
	int retval = join_mboxgr(a->name, a->pid);
	return (void*)retval;
}

void* create_box(void *args)
{
	struct create_box_args* a = (create_box_args*) args;
	int retval = create_mbox(a->type, a->name, a->uid, a->perms);
	return (void*)retval;
}

void* destroy_box(void *args)
{
	struct destroy_box_args* a = (destroy_box_args*) args;
	int retval = destroy_mbox(a->type, a->name, a->uid);
	return (void*)retval;
}

void* write_box(void *args)
{
	struct write_box_args* a = (write_box_args*) args;
	int retval = write_mbox(a->type, a->name, a->uid, a->message, a->flag);
	return (void*)retval;
}

void* read_box(void *args)
{
	struct read_box_args* a = (read_box_args*) args;
	int retval = read_mbox(a->type, a->name, a->uid, a->message, a->len, a->flag);
	return (void*)retval;
}

void* clear_box(void *args)
{
	struct clear_box_args* a = (clear_box_args*) args;
	int retval = clear_mbox(a->type, a->name, a->uid);
	return (void*)retval;
}

int main(int argc, int** argv)
{

	create_group_args* cgArgs[NUMTHREADS+1];

}