Diff for /libaitrpc/src/srv.c between versions 1.8.2.7 and 1.8.2.8

version 1.8.2.7, 2012/05/11 13:35:22 version 1.8.2.8, 2012/05/14 08:36:58
Line 166  rxPacket(sched_task_t *task) Line 166  rxPacket(sched_task_t *task)
         rlen = recv(TASK_FD(task), buf, TASK_DATLEN(task), 0);          rlen = recv(TASK_FD(task), buf, TASK_DATLEN(task), 0);
         if (rlen == -1) {          if (rlen == -1) {
                 LOGERR;                  LOGERR;
                s->srv_kill = s->srv_blob.state = kill;                c->cli_kill = kill;
                 return NULL;                  return NULL;
         } else if (!rlen) {     /* receive EOF */          } else if (!rlen) {     /* receive EOF */
                s->srv_kill = s->srv_blob.state = kill;                c->cli_kill = kill;
                 return NULL;                  return NULL;
         }          }
   
Line 265  rpc_srv_dispatchCall(void *arg) Line 265  rpc_srv_dispatchCall(void *arg)
   
         schedRead(root, rxPacket, c, c->cli_sock, buf, s->srv_netbuf);          schedRead(root, rxPacket, c, c->cli_sock, buf, s->srv_netbuf);
   
        schedRun(root, (void*) &s->srv_kill);        schedRun(root, (void*) &c->cli_kill);
         schedEnd(&root);          schedEnd(&root);
   
         shutdown(c->cli_sock, SHUT_RDWR);          shutdown(c->cli_sock, SHUT_RDWR);
Line 325  rxBLOB(sched_task_t *task) Line 325  rxBLOB(sched_task_t *task)
         rlen = recv(TASK_FD(task), buf, TASK_DATLEN(task), 0);          rlen = recv(TASK_FD(task), buf, TASK_DATLEN(task), 0);
         if (rlen == -1) {          if (rlen == -1) {
                 LOGERR;                  LOGERR;
                s->srv_blob.state = kill;                c->cli_kill = kill;
                 return NULL;                  return NULL;
        } else if (!rlen || s->srv_kill == kill) { /* receive EOF */        } else if (!rlen) { /* receive EOF */
                s->srv_blob.state = kill;                c->cli_kill = kill;
                 return NULL;                  return NULL;
         }          }
   
Line 448  rpc_srv_dispatchVars(void *arg) Line 448  rpc_srv_dispatchVars(void *arg)
   
         schedRead(root, rxBLOB, c, c->cli_sock, buf, sizeof(struct tagBLOBHdr));          schedRead(root, rxBLOB, c, c->cli_sock, buf, sizeof(struct tagBLOBHdr));
   
        schedRun(root, (void*) &s->srv_blob.state);        schedRun(root, (void*) &c->cli_kill);
         schedEnd(&root);          schedEnd(&root);
   
         shutdown(c->cli_sock, SHUT_RDWR);          shutdown(c->cli_sock, SHUT_RDWR);
Line 673  rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) Line 673  rpc_srv_loopBLOB(rpc_srv_t * __restrict srv)
                         c->cli_parent = srv;                          c->cli_parent = srv;
   
                 /* spawn dispatch thread for BLOB client */                  /* spawn dispatch thread for BLOB client */
                   c->cli_kill = enable;
                 if (pthread_create(&c->cli_tid, &attr, rpc_srv_dispatchVars, c)) {                  if (pthread_create(&c->cli_tid, &attr, rpc_srv_dispatchVars, c)) {
                         LOGERR;                          LOGERR;
                         continue;                          continue;
Line 895  rpc_srv_loopServer(rpc_srv_t * __restrict srv) Line 896  rpc_srv_loopServer(rpc_srv_t * __restrict srv)
         if (listen(srv->srv_server.cli_sock, SOMAXCONN) == -1) {          if (listen(srv->srv_server.cli_sock, SOMAXCONN) == -1) {
                 LOGERR;                  LOGERR;
                 return -1;                  return -1;
        } /*else        } else
                 fcntl(srv->srv_server.cli_sock, F_SETFL, fcntl(srv->srv_server.cli_sock, F_GETFL) | O_NONBLOCK);                  fcntl(srv->srv_server.cli_sock, F_SETFL, fcntl(srv->srv_server.cli_sock, F_GETFL) | O_NONBLOCK);
                 */  
   
         pthread_attr_init(&attr);          pthread_attr_init(&attr);
         pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);          pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
Line 934  rpc_srv_loopServer(rpc_srv_t * __restrict srv) Line 934  rpc_srv_loopServer(rpc_srv_t * __restrict srv)
                         c->cli_parent = srv;                          c->cli_parent = srv;
   
                 /* spawn rpc client dispatcher */                  /* spawn rpc client dispatcher */
                   c->cli_kill = enable;
                 if (pthread_create(&c->cli_tid, &attr, rpc_srv_dispatchCall, c)) {                  if (pthread_create(&c->cli_tid, &attr, rpc_srv_dispatchCall, c)) {
                         LOGERR;                          LOGERR;
                         continue;                          continue;

Removed from v.1.8.2.7  
changed lines
  Added in v.1.8.2.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>