wangzhengquan
2020-11-30 8b89e81b09adbb06f6e5e64aa115a1eef6e75b57
src/socket/shm_mod_socket.c
@@ -1,5 +1,7 @@
#include "shm_mod_socket.h"
static Logger *logger = LoggerFactory::getLogger();
void ShmModSocket::foreach_subscripters(std::function<void(SHMKeySet *, int)>  cb) {
   SHMTopicSubMap *topic_sub_map = mem_pool_attach<SHMTopicSubMap>(BUS_MAP_KEY);
@@ -139,7 +141,8 @@
inline int ShmModSocket::_recvfrom_(void **buf, int *size, int *key,  struct timespec *timeout, int flags) {
   if(mod == BUS) {
      err_exit(0, "Can not use method recvfrom in a Bus");
      logger->error("Can not use method recvfrom in a Bus");
      exit(1);
   }
// printf("dgram_mod_recvfrom  before\n");
   int rv = shm_recvfrom(shm_socket, buf, size, key, timeout, flags);
@@ -350,7 +353,6 @@
      subscripter_set = map_iter->second;
      subscripter_set->erase(key);
printf("============ desub %d\n", key);
   }
}
@@ -365,7 +367,6 @@
   for (auto map_iter = topic_sub_map->begin(); map_iter != topic_sub_map->end(); map_iter++) {
         subscripter_set = map_iter->second;
         subscripter_set->erase(key);
printf("============ desub %d\n", key);
   }
}
@@ -403,7 +404,7 @@
      for(vector_iter = subscripter_to_del.begin(); vector_iter != subscripter_to_del.end(); vector_iter++) {
         if((set_iter = subscripter_set->find(*vector_iter)) != subscripter_set->end()) {
            subscripter_set->erase(set_iter);
            printf("remove closed subscripter %d \n", send_key);
            logger->debug("remove closed subscripter %d \n", send_key);
         }
      }
      subscripter_to_del.clear();
@@ -437,7 +438,6 @@
// printf("desub topic=%s,%s,%d\n", topics, trim(topics, 0), strcmp(trim(topics, 0), ""));
            if(strcmp(trim(topics, 0), "") == 0) {
               // 取消所有订阅
      printf("====取消所有订阅\n");
               _proxy_desub_all(key);
            } else {
             
@@ -457,7 +457,7 @@
         free(action);
         free(topics);
      } else {
         err_msg(0, "incorrect format msg");
         logger->error( "ShmModSocket::run_pubsub_proxy : incorrect format msg");
      }
      free(buf);
   }