Remove obsolete classes:

Legacy workarounds for Visual Studio non thread-safe initialization
of function local objects with static storage duration are removed:

* Remove LeakChecked
* Remove StaticObject
* Remove SharedSingleton
This commit is contained in:
Vinnie Falco
2015-02-11 10:39:08 -08:00
committed by Tom Ritchford
parent 11c472d701
commit df89999891
24 changed files with 39 additions and 676 deletions

View File

@@ -17,12 +17,13 @@
*/
//==============================================================================
#include <beast/utility/static_initializer.h>
namespace beast
{
class DeadlineTimer::Manager
: public LeakChecked <Manager>
, protected Thread
: protected Thread
{
private:
typedef CriticalSection LockType;
@@ -42,6 +43,14 @@ public:
bassert (m_items.empty ());
}
static
Manager&
instance()
{
static beast::static_initializer<Manager> m;
return *m;
}
// Okay to call on an active timer.
// However, an extra notification may still happen due to concurrency.
//
@@ -210,19 +219,18 @@ private:
DeadlineTimer::DeadlineTimer (Listener* listener)
: m_listener (listener)
, m_manager (SharedSingleton <Manager>::getInstance ())
, m_isActive (false)
{
}
DeadlineTimer::~DeadlineTimer ()
{
m_manager->deactivate (*this);
Manager::instance().deactivate (*this);
}
void DeadlineTimer::cancel ()
{
m_manager->deactivate (*this);
Manager::instance().deactivate (*this);
}
void DeadlineTimer::setExpiration (double secondsUntilDeadline)
@@ -232,7 +240,7 @@ void DeadlineTimer::setExpiration (double secondsUntilDeadline)
RelativeTime const when (
RelativeTime::fromStartup() + secondsUntilDeadline);
m_manager->activate (*this, 0, when);
Manager::instance().activate (*this, 0, when);
}
void DeadlineTimer::setRecurringExpiration (double secondsUntilDeadline)
@@ -242,7 +250,7 @@ void DeadlineTimer::setRecurringExpiration (double secondsUntilDeadline)
RelativeTime const when (
RelativeTime::fromStartup() + secondsUntilDeadline);
m_manager->activate (*this, secondsUntilDeadline, when);
Manager::instance().activate (*this, secondsUntilDeadline, when);
}
} // beast