tmp
wangzhengquan
2020-07-17 b190a6af38f077b1754b4cb0cdd6c1f6e1494aba
queue/mod_socket.c
@@ -1,6 +1,9 @@
#include "mod_socket.h"
#include "shm_socket.h"
#include "usg_common.h"
#include "logger_factory.h"
static Logger logger = LoggerFactory::getLogger();
typedef struct mod_entry_t
{
   int size;
@@ -55,7 +58,7 @@
int mod_socket_bind(void * _socket, int port){
   mod_socket_t * socket = (mod_socket_t *) _socket;
   return  shm_soket_bind(socket->shm_socket, port);
   return  shm_socket_bind(socket->shm_socket, port);
}
void * run_server_recv_client_msg(void *_socket) {
@@ -118,9 +121,11 @@
   if(socket->is_server ) {
      switch(socket->mod) {
         case REQ_REP:
logger.debug("mod_send before");
            SemUtil::dec(socket->items);
            rv = shm_send(socket->client_socket, buf, size);
            SemUtil::inc(socket->slots);
logger.debug("mod_send after");
            break;
         case SURVEY:
         case PUB_SUB:
@@ -135,7 +140,10 @@
      
   }
   else {
      return shm_send(socket->shm_socket, buf, size);
logger.debug("mod_send before");
      rv = shm_send(socket->shm_socket, buf, size);
logger.debug("mod_send after");
      return rv;
   }
   return -1;
   
@@ -149,12 +157,14 @@
   if(socket->is_server ) {
      switch(socket->mod) {
         case REQ_REP:
   logger.debug("REQ_REP mod_recv before");
            SemUtil::dec(socket->slots);
            rv = socket->recvQueue->pop(entry);
            *buf = entry.buf;
            *size = entry.size;
            socket->client_socket = entry.client_socket;
            SemUtil::inc(socket->items);
logger.debug("REQ_REP mod_recv after");
            break;
         case PUB_SUB:
            rv = 0;
@@ -170,7 +180,10 @@
      return rv;
   }
   else {
      return shm_recv(socket->shm_socket, buf, size);
logger.debug("mod_recv before");
      rv = shm_recv(socket->shm_socket, buf, size);
logger.debug("mod_recv after");
      return rv;
   }
   return -1;