mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-07-28 23:16:15 -04:00
46 lines
644 B
C++
46 lines
644 B
C++
// ======================================================================
|
|
//
|
|
// Gate.cpp
|
|
// Acy Stapp
|
|
//
|
|
// Copyright 6/19/2001 Sony Online Entertainment
|
|
//
|
|
// ======================================================================
|
|
|
|
#include "sharedFoundation/FirstSharedFoundation.h"
|
|
#include "sharedSynchronization/Gate.h"
|
|
|
|
Gate::Gate(bool open)
|
|
: cond(lock)
|
|
{
|
|
opened = open;
|
|
}
|
|
|
|
Gate::~Gate()
|
|
{
|
|
}
|
|
|
|
void Gate::wait()
|
|
{
|
|
lock.enter();
|
|
while (!opened)
|
|
cond.wait();
|
|
lock.leave();
|
|
}
|
|
|
|
void Gate::close()
|
|
{
|
|
lock.enter();
|
|
opened = false;
|
|
lock.leave();
|
|
}
|
|
|
|
void Gate::open()
|
|
{
|
|
lock.enter();
|
|
opened = true;
|
|
cond.broadcast();
|
|
lock.leave();
|
|
}
|
|
|