[BACK]Return to tcpf.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / io

Diff for /OpenXM_contrib2/asir2000/io/tcpf.c between version 1.60 and 1.70

version 1.60, 2011/01/18 09:09:22 version 1.70, 2015/08/14 13:51:55
Line 44 
Line 44 
  * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY   * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.59 2010/12/12 03:20:53 ohara Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.69 2015/08/08 14:19:42 fujimoto Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
 #include "com.h"  #include "com.h"
 #include <signal.h>  #include <signal.h>
 #include <string.h>  #include <string.h>
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
 #include <unistd.h>  #include <unistd.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <pwd.h>  #include <pwd.h>
 #endif  #endif
 #include "ox.h"  #include "ox.h"
   
 #if defined(VISUAL)  
 #include <stdlib.h>  #include <stdlib.h>
   #if defined(VISUAL) || defined(__MINGW32__)
 #include <winsock2.h>  #include <winsock2.h>
 #include <process.h>  #include <process.h>
 #endif  #endif
Line 128  void Pgenerate_port(),Ptry_bind_listen(),Ptry_connect(
Line 128  void Pgenerate_port(),Ptry_bind_listen(),Ptry_connect(
 void Pregister_server();  void Pregister_server();
 void Pox_get_serverinfo();  void Pox_get_serverinfo();
 void Pox_mpi_myid(), Pox_mpi_nprocs();  void Pox_mpi_myid(), Pox_mpi_nprocs();
 void Pnd_exec_f4_red();  
 void Pox_tcp_accept_102(),Pox_tcp_connect_102();  void Pox_tcp_accept_102(),Pox_tcp_connect_102();
 void Pox_send_102(),Pox_recv_102();  void Pox_send_102(),Pox_recv_102();
 void Pox_set_rank_102();  void Pox_set_rank_102();
Line 203  struct ftab tcp_tab[] = {
Line 202  struct ftab tcp_tab[] = {
         {"ox_execute_string",Pox_execute_string,2},          {"ox_execute_string",Pox_execute_string,2},
         {"ox_execute_function",Pox_execute_function,3},          {"ox_execute_function",Pox_execute_function,3},
   
         {"nd_exec_f4_red",Pnd_exec_f4_red,0},  
   
   
         {0,0,0},          {0,0,0},
 };  };
   
Line 213  extern struct IOFP iofp[];
Line 209  extern struct IOFP iofp[];
 extern MATHCAP my_mathcap;  extern MATHCAP my_mathcap;
 extern int ox_exchange_mathcap;  extern int ox_exchange_mathcap;
   
 char *getenv();  Obj asir_pop_one();
   void asir_push_one(Obj);
   
 void Pnd_exec_f4_red(Q *rp)  
 {  
         nd_exec_f4_red_dist();  
         *rp = 0;  
 }  
   
 #if defined(MPI)  #if defined(MPI)
 extern int mpi_myid, mpi_nprocs;  extern int mpi_myid, mpi_nprocs;
   
Line 491  void Pregister_server(NODE arg,Q *rp)
Line 482  void Pregister_server(NODE arg,Q *rp)
         STOQ(ind,*rp);          STOQ(ind,*rp);
 }  }
   
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
 #include <sys/file.h>  #include <sys/file.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
Line 575  void ox_launcher_101_generic(char *host,char *launcher
Line 566  void ox_launcher_101_generic(char *host,char *launcher
         char control_port_str[BUFSIZ];          char control_port_str[BUFSIZ];
         Obj obj;          Obj obj;
   
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         if ( use_unix && !find_executable("xterm") ) use_x = 0;          if ( use_unix && !find_executable("xterm") ) use_x = 0;
 #endif  #endif
         control_port_str[0] = 0;          control_port_str[0] = 0;
Line 634  void ox_launch_generic(char *host,char *launcher,char 
Line 625  void ox_launch_generic(char *host,char *launcher,char 
         STOQ(-1,*rp);          STOQ(-1,*rp);
         return;          return;
     }      }
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         if ( use_unix && !find_executable("xterm") ) use_x = 0;          if ( use_unix && !find_executable("xterm") ) use_x = 0;
 #endif  #endif
         control_port_str[0] = 0;          control_port_str[0] = 0;
Line 695  void ox_launch_generic(char *host,char *launcher,char 
Line 686  void ox_launch_generic(char *host,char *launcher,char 
         STOQ(ind,*rp);          STOQ(ind,*rp);
 }  }
   
 #if defined(__CYGWIN__)  #if defined(__CYGWIN32__)
 static void bslash2slash(char *buf)  static void bslash2slash(char *buf)
 {  {
         char *p;          char *p;
Line 790  void spawn_server(char *host,char *launcher,char *serv
Line 781  void spawn_server(char *host,char *launcher,char *serv
         STRING rootdir;          STRING rootdir;
         char prog[BUFSIZ];          char prog[BUFSIZ];
         char *av[BUFSIZ];          char *av[BUFSIZ];
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         char cmd[BUFSIZ];          char cmd[BUFSIZ];
 #endif  #endif
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__)
Line 818  void spawn_server(char *host,char *launcher,char *serv
Line 809  void spawn_server(char *host,char *launcher,char *serv
                 strcpy(localhost,asirhost);                  strcpy(localhost,asirhost);
         else          else
                 gethostname(localhost,BUFSIZ);                  gethostname(localhost,BUFSIZ);
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         if ( !use_unix )          if ( !use_unix )
                 error("spawn_server : not implemented on Windows");                  error("spawn_server : not implemented on Windows");
         Pget_rootdir(&rootdir);          Pget_rootdir(&rootdir);
Line 839  void spawn_server(char *host,char *launcher,char *serv
Line 830  void spawn_server(char *host,char *launcher,char *serv
 //      printf("ox_launch 127.0.0.1 %s %s %s %s 0\n",conn_str,control_port_str,server_port_str,server);  //      printf("ox_launch 127.0.0.1 %s %s %s %s 0\n",conn_str,control_port_str,server_port_str,server);
 #else  #else
         if ( use_unix || !host ) {          if ( use_unix || !host ) {
 #if defined(__CYGWIN__)  #if defined(__CYGWIN32__)
                 get_launcher_path(win_launcher);                  get_launcher_path(win_launcher);
                 if ( dname && strchr(dname,':') ) {                  if ( dname && strchr(dname,':') ) {
                         if ( !fork() ) {                          if ( !fork() ) {
Line 981  void ox_launch_main(int with_x,NODE arg,Obj *p)
Line 972  void ox_launch_main(int with_x,NODE arg,Obj *p)
   
 void extend_mctab(int bound)  void extend_mctab(int bound)
 {  {
         int s,i,n;          int i,n;
         struct m_c *t;          struct m_c *t;
     if ( !m_c_tab ) {      if ( !m_c_tab ) {
         n = (bound/INIT_TAB_SIZ + 1)*INIT_TAB_SIZ;          n = (bound/INIT_TAB_SIZ + 1)*INIT_TAB_SIZ;
Line 994  void extend_mctab(int bound)
Line 985  void extend_mctab(int bound)
     }else if (bound >= m_c_s) {      }else if (bound >= m_c_s) {
         n = (bound/INIT_TAB_SIZ + 1)*INIT_TAB_SIZ;          n = (bound/INIT_TAB_SIZ + 1)*INIT_TAB_SIZ;
         t = (struct m_c *)MALLOC_ATOMIC(n*sizeof(struct m_c));          t = (struct m_c *)MALLOC_ATOMIC(n*sizeof(struct m_c));
         bzero((void *)t,s);          bzero((void *)t,n*sizeof(struct m_c));
         bcopy((void *)m_c_tab,(void *)t,m_c_s*sizeof(struct m_c));          bcopy((void *)m_c_tab,(void *)t,m_c_s*sizeof(struct m_c));
         for ( i = m_c_s; i < n; i++ ) {          for ( i = m_c_s; i < n; i++ ) {
             t[i].af_unix = 0;              t[i].af_unix = 0;
Line 1041  int register_server(int af_unix,int m,int c,int ind)
Line 1032  int register_server(int af_unix,int m,int c,int ind)
 #endif  #endif
         if ( m_c_i == m_c_s ) {          if ( m_c_i == m_c_s ) {
                 s = (m_c_s+INIT_TAB_SIZ)*sizeof(struct m_c);                  s = (m_c_s+INIT_TAB_SIZ)*sizeof(struct m_c);
                 t = (struct m_c *)MALLOC_ATOMIC(s); bzero((void *)m_c_tab,s);                  t = (struct m_c *)MALLOC_ATOMIC(s);
                 bcopy((void *)m_c_tab,(void *)t,m_c_s*sizeof(struct m_c));                  bcopy((void *)m_c_tab,(void *)t,m_c_s*sizeof(struct m_c));
                 for ( i = 0; i < INIT_TAB_SIZ; i++ ) {                  for ( i = 0; i < INIT_TAB_SIZ; i++ ) {
                         m_c_tab[m_c_s+i].af_unix = 0;                          t[m_c_s+i].af_unix = 0;
                         m_c_tab[m_c_s+i].m = m_c_tab[m_c_s+i].c = -1;                          t[m_c_s+i].m = m_c_tab[m_c_s+i].c = -1;
                 }                  }
                 m_c_s += INIT_TAB_SIZ; m_c_tab = t;                  m_c_s += INIT_TAB_SIZ; m_c_tab = t;
         }          }
Line 1106  void Pox_select(NODE arg,LIST *rp)
Line 1097  void Pox_select(NODE arg,LIST *rp)
         }          }
   
         n = select(FD_SETSIZE,&r,&w,&e,tvp);          n = select(FD_SETSIZE,&r,&w,&e,tvp);
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         for ( i = minfd, t = 0; n && i <= maxfd; i++ )          for ( i = minfd, t = 0; n && i <= maxfd; i++ )
 #else  #else
         for ( i = 0, t = 0; n && i < FD_SETSIZE; i++ )          for ( i = 0, t = 0; n && i < FD_SETSIZE; i++ )
Line 1476  void Pox_reset(NODE arg,Q *rp)
Line 1467  void Pox_reset(NODE arg,Q *rp)
                         ox_recv(m,&id,&obj); t = (USINT)obj;                          ox_recv(m,&id,&obj); t = (USINT)obj;
                 }                  }
                 *rp = ONE;                  *rp = ONE;
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
                 Sleep(100);                  Sleep(100);
                 ox_send_cmd(c,SM_nop);                  ox_send_cmd(c,SM_nop);
                 ox_flush_stream_force(c);                  ox_flush_stream_force(c);
Line 1523  void Pox_shutdown(NODE arg,Q *rp)
Line 1514  void Pox_shutdown(NODE arg,Q *rp)
 {  {
         int s;          int s;
         int index = QTOS((Q)ARG0(arg));          int index = QTOS((Q)ARG0(arg));
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         int status;          int status;
 #endif  #endif
   
Line 1533  void Pox_shutdown(NODE arg,Q *rp)
Line 1524  void Pox_shutdown(NODE arg,Q *rp)
         free_iofp(s);          free_iofp(s);
         s = m_c_tab[index].c;          s = m_c_tab[index].c;
         free_iofp(s);          free_iofp(s);
 #if !defined(MPI) && !defined(VISUAL)  #if !defined(MPI) && !defined(VISUAL) && !defined(__MINGW32__)
         if ( m_c_tab[index].af_unix )          if ( m_c_tab[index].af_unix )
                 wait(&status);                  wait(&status);
 #endif  #endif
Line 1556  void Pox_push_cmd(NODE arg,Q *rp)
Line 1547  void Pox_push_cmd(NODE arg,Q *rp)
 void shutdown_all() {  void shutdown_all() {
         int s;          int s;
         int i,index;          int i,index;
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         int status;          int status;
 #endif  #endif
   
Line 1567  void shutdown_all() {
Line 1558  void shutdown_all() {
                         continue;                          continue;
                 s = m_c_tab[index].m;                  s = m_c_tab[index].m;
                 ox_send_cmd(s,SM_shutdown);                  ox_send_cmd(s,SM_shutdown);
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         Sleep(1000);          Sleep(1000);
 #endif  #endif
                 free_iofp(s);                  free_iofp(s);
                 s = m_c_tab[index].c;                  s = m_c_tab[index].c;
                 free_iofp(s);                  free_iofp(s);
 #if !defined(MPI) && !defined(VISUAL)  #if !defined(MPI) && !defined(VISUAL) && !defined(__MINGW32__)
                 if ( m_c_tab[index].af_unix )                  if ( m_c_tab[index].af_unix )
                         wait(&status);                          wait(&status);
 #endif  #endif
Line 1611  int validate_ox_plot_stream(int index)
Line 1602  int validate_ox_plot_stream(int index)
   
         /* create an ox_plot server */          /* create an ox_plot server */
         MKSTR(name,"ox_plot");          MKSTR(name,"ox_plot");
         arg = mknode(2,0,name);          arg = mknode(2,NULL,name);
         Pox_launch_nox(arg,&r);          Pox_launch_nox(arg,&r);
         i = QTOS((Q)r);          i = QTOS((Q)r);
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         Sleep(100);          Sleep(100);
         ox_send_cmd(m_c_tab[i].c,SM_nop);          ox_send_cmd(m_c_tab[i].c,SM_nop);
         ox_flush_stream_force(m_c_tab[i].c);          ox_flush_stream_force(m_c_tab[i].c);
Line 1634  int register_102(int s1,int rank,int is_master)
Line 1625  int register_102(int s1,int rank,int is_master)
   
         if ( rank >= MAXIOFP ) return -1;          if ( rank >= MAXIOFP ) return -1;
         iofp_102[rank].s = s1;          iofp_102[rank].s = s1;
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         iofp_102[rank].in = WSIO_open(s1,"r");          iofp_102[rank].in = WSIO_open(s1,"r");
         iofp_102[rank].out = WSIO_open(s1,"w");          iofp_102[rank].out = WSIO_open(s1,"w");
 #else  #else
Line 1642  int register_102(int s1,int rank,int is_master)
Line 1633  int register_102(int s1,int rank,int is_master)
         iofp_102[rank].out = fdopen(s1,"w");          iofp_102[rank].out = fdopen(s1,"w");
 #if !defined(__CYGWIN__)  #if !defined(__CYGWIN__)
         setbuffer(iofp_102[rank].in,iofp_102[rank].inbuf =          setbuffer(iofp_102[rank].in,iofp_102[rank].inbuf =
                 (char *)GC_malloc_atomic(LBUFSIZ),LBUFSIZ);                  (char *)MALLOC_ATOMIC(LBUFSIZ),LBUFSIZ);
         setbuffer(iofp_102[rank].out,iofp_102[rank].outbuf =          setbuffer(iofp_102[rank].out,iofp_102[rank].outbuf =
                 (char *)GC_malloc_atomic(LBUFSIZ),LBUFSIZ);                  (char *)MALLOC_ATOMIC(LBUFSIZ),LBUFSIZ);
 #endif  #endif
 #endif  #endif
         if ( little_endian )          if ( little_endian )

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.70

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