=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/tcpf.c,v retrieving revision 1.16.2.1 retrieving revision 1.21 diff -u -p -r1.16.2.1 -r1.21 --- OpenXM_contrib2/asir2000/io/tcpf.c 2000/11/08 08:31:55 1.16.2.1 +++ OpenXM_contrib2/asir2000/io/tcpf.c 2000/11/15 09:18:01 1.21 @@ -44,7 +44,7 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.16 2000/11/07 06:35:39 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.20 2000/11/15 08:47:20 noro Exp $ */ #if INET #include "ca.h" @@ -59,7 +59,7 @@ #if defined(VISUAL) #include -#include +#include #include #endif @@ -309,7 +309,7 @@ Q *rp; } /* - try_accept(sock) + try_accept(sock,port) */ void Ptry_accept(arg,rp) @@ -322,7 +322,7 @@ Q *rp; use_unix = 0; else use_unix = 1; - s = try_accept(QTOS((Q)ARG0(arg))); + s = try_accept(use_unix,QTOS((Q)ARG0(arg))); STOQ(s,*rp); } @@ -448,8 +448,8 @@ Q *rp; cs = try_connect(use_unix,host,control_port_str); ss = try_connect(use_unix,host,server_port_str); } else { - cs = try_accept(cs); - ss = try_accept(ss); + cs = try_accept(use_unix,cs); + ss = try_accept(use_unix,ss); } } while ( cs < 0 || ss < 0 ); @@ -493,14 +493,15 @@ char *control_port_str,*server_port_str; { char cmd[BUFSIZ]; char localhost[BUFSIZ]; - char *dname,*conn_str,*rsh; + char *dname,*conn_str,*rsh,*dname0; char dname_str[BUFSIZ]; char AsirExe[BUFSIZ]; STRING rootdir; char prog[BUFSIZ]; char *av[BUFSIZ]; - dname = use_x ? (char *)getenv("DISPLAY") : 0; + dname0 = (char *)getenv("DISPLAY"); + dname = use_x ? dname0 : 0; conn_str = conn_to_serv ? "1" : "0"; rsh = getenv("ASIR_RSH"); if ( !rsh ) @@ -542,7 +543,7 @@ char *control_port_str,*server_port_str; control_port_str,server_port_str,server,dname,0); else execlp(launcher,launcher,".",conn_str, - control_port_str,server_port_str,server,"0",0); + control_port_str,server_port_str,server,dname0,"-nolog",0); } } else if ( conn_to_serv == 2 ) { /* special support for java */ @@ -572,9 +573,9 @@ char *control_port_str,*server_port_str; control_port_str,server_port_str,server,dname); else sprintf(cmd, -"%s -n %s \"%s %s %s %s %s %s %s >&/dev/null&\">/dev/null", +"%s -n %s \"%s %s %s %s %s %s %s %s>&/dev/null&\">/dev/null", rsh,host,launcher,localhost,conn_str, - control_port_str,server_port_str,server,"0"); + control_port_str,server_port_str,server,dname0,"-nolog"); system(cmd); } #endif /* VISUAL */ @@ -1141,6 +1142,10 @@ Q *rp; s = m_c_tab[index].m; ox_send_cmd(s,SM_shutdown); free_iofp(s); +#if !defined(VISUAL) + s = m_c_tab[index].c; + free_iofp(s); +#endif #if !MPI && !defined(VISUAL) if ( m_c_tab[index].af_unix ) wait(&status); @@ -1176,7 +1181,14 @@ void shutdown_all() { continue; s = m_c_tab[index].m; ox_send_cmd(s,SM_shutdown); +#if defined(VISUAL) + Sleep(1000); +#endif free_iofp(s); +#if !defined(VISUAL) + s = m_c_tab[index].c; + free_iofp(s); +#endif #if !MPI && !defined(VISUAL) if ( m_c_tab[index].af_unix ) wait(&status);