2 #include "ace/OS_NS_unistd.h"
4 Sleeper_i::Sleeper_i (CORBA::ORB_ptr orb
)
5 : orb_ (CORBA::ORB::_duplicate (orb
))
10 Sleeper_i::delay(CORBA::Short sec
)
12 ACE_DEBUG ((LM_DEBUG
, ACE_TEXT ("(%P|%t) Sleeper_i::delay called\n")));
15 ACE_TEXT ("(%P|%t) Sleeper_i::delay returning\n")));
19 Sleeper_i::shutdown ()
21 this->orb_
->shutdown (false);
24 //-----------------------------------------------
26 Middle_i::Middle_i (CORBA::ORB_ptr orb
, Test::Sleeper_ptr s
)
27 : orb_ (CORBA::ORB::_duplicate (orb
)),
28 sleeper_ (Test::Sleeper::_duplicate (s
))
33 Middle_i::call_delay(CORBA::Short sec
)
36 ACE_TEXT ("(%P|%t) Middle_i::delay called\n")));
39 ACE_Thread::self (thr
);
40 bool recursive
= false;
42 ACE_GUARD (TAO_SYNCH_MUTEX
, guard
, this->lock_
);
43 int result
= this->threads_
.insert (thr
);
44 ACE_ASSERT (result
!= -1);
48 ACE_TEXT ("(%P|%t) Middle_i::call_delay, ")
49 ACE_TEXT ("recursive upcall detected for thr = %d\n"),
55 this->sleeper_
->delay(sec
);
59 ACE_GUARD (TAO_SYNCH_MUTEX
, guard
, this->lock_
);
60 int result
= this->threads_
.remove (thr
);
63 ACE_TEXT ("(%P|%t) Middle_i::call_delay, ")
64 ACE_TEXT ("unable to remove thr = %d\n"),
66 ACE_ASSERT (result
!= -1);
70 ACE_TEXT("(%P|%t) Middle_i::delay returning recursive = %d\n"),
77 sleeper_
->shutdown ();
78 this->orb_
->shutdown (false);