summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.cpp
blob: cc52c47852f123972f350956f66dac1f8e71b276 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// $Id$

#include "Method_Request_Shutdown.h"
#include "ThreadPool_Task.h"

#if ! defined (__ACE_INLINE__)
#include "Method_Request_Shutdown.inl"
#endif /* __ACE_INLINE__ */

ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Shutdown, "$Id$")

TAO_NS_Method_Request_Shutdown::TAO_NS_Method_Request_Shutdown (TAO_NS_ThreadPool_Task* task)
  : task_ (task)
{
}

TAO_NS_Method_Request_Shutdown::~TAO_NS_Method_Request_Shutdown ()
{
}

TAO_NS_Method_Request*
TAO_NS_Method_Request_Shutdown::copy (void)
{
  return new TAO_NS_Method_Request_Shutdown (this->task_);
}

int
TAO_NS_Method_Request_Shutdown::execute (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
{
  // Shut down the scheduler by deactivating the activation queue's
  // underlying message queue - should pop all worker threads off their
  // wait and they'll exit.
  this->task_->msg_queue ()->deactivate ();
  return -1;
}