aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/worldserver/TCSoap/TCSoap.cpp19
-rwxr-xr-xsrc/server/worldserver/TCSoap/TCSoap.h29
2 files changed, 7 insertions, 41 deletions
diff --git a/src/server/worldserver/TCSoap/TCSoap.cpp b/src/server/worldserver/TCSoap/TCSoap.cpp
index c0b3f8faebb..603b4824408 100755
--- a/src/server/worldserver/TCSoap/TCSoap.cpp
+++ b/src/server/worldserver/TCSoap/TCSoap.cpp
@@ -19,14 +19,8 @@
#include "soapH.h"
#include "soapStub.h"
-#define POOL_SIZE 5
-
void TCSoapRunnable::run()
{
- // create pool
- SOAPWorkingThread pool;
- pool.activate (THR_NEW_LWP | THR_JOINABLE, POOL_SIZE);
-
struct soap soap;
soap_init(&soap);
soap_set_imode(&soap, SOAP_C_UTFSTRING);
@@ -44,7 +38,7 @@ void TCSoapRunnable::run()
sLog->outString("TCSoap: bound to http://%s:%d", m_host.c_str(), m_port);
- while(!World::IsStopped())
+ while (!World::IsStopped())
{
if (!soap_valid_socket(soap_accept(&soap)))
continue; // ran into an accept timeout
@@ -53,22 +47,19 @@ void TCSoapRunnable::run()
struct soap* thread_soap = soap_copy(&soap);// make a safe copy
ACE_Message_Block *mb = new ACE_Message_Block(sizeof(struct soap*));
- ACE_OS::memcpy (mb->wr_ptr(), &thread_soap, sizeof(struct soap*));
- pool.putq(mb);
+ ACE_OS::memcpy(mb->wr_ptr(), &thread_soap, sizeof(struct soap*));
+ process_message(mb);
}
- pool.msg_queue()->deactivate();
- pool.wait();
-
soap_done(&soap);
}
-void SOAPWorkingThread::process_message (ACE_Message_Block *mb)
+void TCSoapRunnable::process_message(ACE_Message_Block *mb)
{
ACE_TRACE (ACE_TEXT ("SOAPWorkingThread::process_message"));
struct soap* soap;
- ACE_OS::memcpy (&soap, mb->rd_ptr (), sizeof(struct soap*));
+ ACE_OS::memcpy(&soap, mb->rd_ptr (), sizeof(struct soap*));
mb->release();
soap_serve(soap);
diff --git a/src/server/worldserver/TCSoap/TCSoap.h b/src/server/worldserver/TCSoap/TCSoap.h
index d5232f33773..863d7597ef8 100755
--- a/src/server/worldserver/TCSoap/TCSoap.h
+++ b/src/server/worldserver/TCSoap/TCSoap.h
@@ -41,37 +41,12 @@ class TCSoapRunnable: public ACE_Based::Runnable
m_port = port;
}
private:
+ void process_message(ACE_Message_Block *mb);
+
std::string m_host;
uint16 m_port;
};
-class SOAPWorkingThread : public ACE_Task<ACE_MT_SYNCH>
-{
- public:
- SOAPWorkingThread() { }
-
- virtual int svc(void)
- {
- while(1)
- {
- ACE_Message_Block *mb = 0;
- if (this->getq(mb) == -1)
- {
- ACE_DEBUG((LM_INFO,
- ACE_TEXT("(%t) Shutting down\n")));
- break;
- }
-
- // Process the message.
- process_message(mb);
- }
-
- return 0;
- }
- private:
- void process_message(ACE_Message_Block *mb);
-};
-
class SOAPCommand
{
public: