Refactoring
[invirt/third/libt4.git] / rpc / rpc.cc
index 2c1f1a5..abbe470 100644 (file)
  x exited worker threads).
  */
 
-#include "types.h"
 #include "rpc.h"
 
-#include <sys/types.h>
 #include <arpa/inet.h>
 #include <netinet/tcp.h>
 #include <netdb.h>
@@ -266,7 +264,7 @@ rpcc::get_refconn(shared_ptr<connection> & ch)
 {
     lock ml(chan_m_);
     if (!chan_ || chan_->isdead())
-        chan_ = connect_to_dst(dst_, this, lossytest_);
+        chan_ = connection::to_dst(dst_, this, lossytest_);
 
     if (chan_)
         ch = chan_;
@@ -344,17 +342,19 @@ rpcs::rpcs(in_port_t p1, size_t count)
     IF_LEVEL(2) LOG("created with nonce " << nonce_);
 
     reg(rpc_const::bind, &rpcs::rpcbind, this);
-    dispatchpool_ = new ThrPool(6, false);
+    dispatchpool_ = unique_ptr<thread_pool>(new thread_pool(6, false));
+}
 
+void rpcs::start() {
     char *loss_env = getenv("RPC_LOSSY");
-    listener_ = new tcpsconn(this, port_, loss_env ? atoi(loss_env) : 0);
+    listener_ = unique_ptr<tcpsconn>(new tcpsconn(this, port_, loss_env ? atoi(loss_env) : 0));
 }
 
 rpcs::~rpcs()
 {
     // must delete listener before dispatchpool
-    delete listener_;
-    delete dispatchpool_;
+    listener_ = nullptr;
+    dispatchpool_ = nullptr;
     free_reply_window();
 }
 
@@ -436,7 +436,7 @@ void rpcs::dispatch(shared_ptr<connection> c, const string & buf) {
     {
         lock pl(procs_m_);
         if(procs_.count(proc) < 1){
-            cerr << "unknown proc " << hex << proc << "." << endl;
+            LOG("unknown proc 0x" << hex << proc << " with h.srv_nonce=" << h.srv_nonce << ", my srv_nonce=" << nonce_);
             VERIFY(0);
             return;
         }
@@ -477,9 +477,8 @@ void rpcs::dispatch(shared_ptr<connection> c, const string & buf) {
 
     switch (stat) {
         case NEW: // new request
-            if (counting_){
+            if (counting_)
                 updatestat(proc);
-            }
 
             rh.ret = (*f)(req, rep);
             if (rh.ret == rpc_const::unmarshal_args_failure) {