#if !defined(MYTHREADS_H_H) #define MYTHREADS_H_H #include #include #include #include #include #include #include #include #include "type-def.h" #include "util.h" #if defined(MYTHREADS_SOURCE_C_C) #define EXTERN_FLAG #else #define EXTERN_FLAG extern #endif // The following are the global variables used among // producer and consumer threads // Note they are initilized in the main program EXTERN_FLAG MESSAGE_INFO *shared_buf; EXTERN_FLAG int message_buf_size; EXTERN_FLAG char *mailbox; EXTERN_FLAG int mailbox_len; EXTERN_FLAG int nextc, nextp; EXTERN_FLAG int done; EXTERN_FLAG int mutex_lock_flag; EXTERN_FLAG int NUM_THREADS; // The following are the function prototype EXTERN_FLAG void * Producer(void *arg); EXTERN_FLAG void *Consumer(void *arg); EXTERN_FLAG int Produce_A_Message(MESSAGE_INFO *amessage); EXTERN_FLAG int Consume_A_Message(MESSAGE_INFO *amessage); #undef EXTERN_FLAG #endif