//---------------------------------------------------------------------- // SynchConsole // Routines to synchronously access the console. The console itself // is asynchronous. // // A lock is used to ensure one read or write is done at a time. //---------------------------------------------------------------------- #include "console.h" #include "synch.h" static Semaphore *readAvail; static Semaphore *writeDone; static void ReadAvail(int arg) { readAvail->V(); } static void WriteDone(int arg) { writeDone->V(); } class SynchConsole { public: SynchConsole(char* readFile, char* writeFile); ~SynchConsole(); void ReadLine(char *databuf,int length); void WriteLine(char *databuf,int length); private: Console *console; Lock *lock; };