Skip to content

Instantly share code, notes, and snippets.

// ISU laboratory session #8, exercise #3.
#include <osapi/Thread.hpp>
#include <osapi/Message.hpp>
#include <osapi/MsgQueue.hpp>
#include <osapi/Utility.hpp>
#include <iostream>
#include "car.hpp"
#include "EntryGuard.hpp"
using namespace std;
// ISU laboratory session #8, exercise #3.
#ifndef EXITGATE_HPP
#define EXITGATE_HPP
#include <osapi/Thread.hpp>
#include <osapi/Message.hpp>
#include <osapi/MsgQueue.hpp>
#include <osapi/Utility.hpp>
#include "car.hpp"
struct exitGuardOpenReq : public osapi::Message
// ISU laboratory session #8, exercise #3.
#include <osapi/Thread.hpp>
#include <osapi/Message.hpp>
#include <osapi/MsgQueue.hpp>
#include <osapi/Utility.hpp>
#include <iostream>
#include "car.hpp"
#include "ExitGuard.hpp"
using namespace std;
// ISU laboratory session #8, exercise #3.
#ifndef CAR_HPP
#define CAR_HPP
#include <osapi/Thread.hpp>
#include <osapi/Message.hpp>
#include <osapi/MsgQueue.hpp>
#include <osapi/Utility.hpp>
#include "EntryGuard.hpp"
#include "ExitGuard.hpp"
// ISU laboratory session #8, exercise #3.
#include <osapi/Thread.hpp>
#include <osapi/Message.hpp>
#include <osapi/MsgQueue.hpp>
#include <osapi/Utility.hpp>
#include <unistd.h>
#include <iostream>
#include "car.hpp"
using namespace std;
// ISU laboratory session #8, exercise #1.
#ifndef OSAPI_LINUX_MUTEX_HPP
#define OSAPI_LINUX_MUTEX_HPP
#include <pthread.h>
#include <osapi/Utility.hpp>
namespace osapi
{
class Mutex : Notcopyable
// ISU laboratory session #8, exercise #1.
#include <iostream>
//#include <osapi/Exceptions>
#include <osapi/Mutex.hpp>
namespace osapi
{
Mutex::Mutex()
{
if(pthread_mutex_init(&mtxID_, NULL))
// ISU laboratory session #8, exercise #1.
#include <errno.h>
#include <osapi/ConditionalError.hpp>
#include "osapi/linux/Mutex.hpp"
#include <osapi/linux/Conditional.hpp>
namespace osapi
{
Conditional::Conditional()
{
// ISU laboratory session #8, exercise #1.
#include <osapi/Utility.hpp>
#include <unistd.h>
namespace osapi
{
void sleep(unsigned long msecs)
{
usleep(msecs * 1000); //Converts miliseconds to seconds
}
// ISU laboratory session #8, exercise #1.
#include <unistd.h>
#include <errno.h>
#include <iostream>
#include <osapi/Thread.hpp>
//#include <osapi/ThreadFunctor.hpp>
namespace osapi
{
Thread::Thread(ThreadFunctor* tf,