1
// Update_Manager.cpp,v 1.2 2003/10/15 18:06:29 huangming Exp
3
#include "Update_Manager.h"
5
ACE_RCSID (EventChannel,
7
"Update_Manager.cpp,v 1.2 2003/10/15 18:06:29 huangming Exp")
10
Update_Manager::Update_Manager(ACE_Auto_Event& evt,
12
int transaction_depth,
15
, replied_(num_backups)
16
, suicide_condition_(num_backups)
17
, num_backups_(num_backups)
18
, transaction_level_(transaction_depth)
21
suicide_condition_.flip();
22
signal_condition_.resize(transaction_depth, true);
23
signal_condition_.resize(num_backups);
26
Update_Manager::~Update_Manager()
30
void Update_Manager::handle_reply(int id)
32
ACE_Guard<ACE_Thread_Mutex> guard(mutex_);
35
if ((replied_ & signal_condition_) == signal_condition_) {
39
if (replied_ == suicide_condition_)
43
void Update_Manager::handle_exception(int id)
45
ACE_Guard<ACE_Thread_Mutex> guard(mutex_);
49
if (num_backups_ > transaction_level_) {
50
signal_condition_[transaction_level_]=true;
56
if (replied_ == suicide_condition_)