class mutex { public: mutex(int process = 0); // set process to 1 for virtual ~mutex(); // mutexes between processes void unlock(); // unlock mutex void lock(); // lock mutex, block if already locked int trylock(); // 1-success; 0-failure (semaphore=0) private: void* mp; };