| true | 245 | | gs_handle( hash_list, ngroups, gstid ) | | | 246 | | GROUP_LIST_PTR hash_list; | | | 247 | | int *ngroups, *gstid; | | | 248 | | { | | | 249 | | int len, msgtag, tid, gid, cc, ftid, inst, i, size, ntids, listsize; | | | 250 | | int cnt, hosttid, nhosts, nmem_onhost, pcoord; | | | 251 | | int *nmem_onhostv = (int *) NULL, *pcoordv = (int *) NULL;
| | | 252 | | int mxupklen = 0; | | | 253 | | GROUP_STRUCT_PTR group; | | | 254 | | char *groupname = (char *) NULL;
| | | 255 | | int *tidlist = (int *) NULL;
| | | 256 | | int maxntids = 0, info; | | | 257 | | int gstate; | | | 258 | | | | | 259 | | while ( 1 ) | | | 260 | | { | | | 261 | | if ( (cc = pvm_recv( -1, -1 )) < 0 ) | | | 262 | | { | | | 263 | | pvm_perror( "gs_handle(recv)" ); | | | 264 | | return( cc ); | | | 265 | | } | | | 266 | | |
| | 2999 | | | | | | pvmbeatask() | | | 3000 | | | | | | { | | | 3001 | | | | | | int sbf = 0, rbf = 0; | | | 3002 | | | | | | int prver; | | | 3003 | | | | | | int cookie; | | | 3004 | | | | | | int cc; | | | 3005 | | | | | | char **ep=0; | | | 3006 | | | | | | char authfn[PVMTMPNAMLEN];
| | | 3007 | | | | | | int authfd = -1; | | | 3008 | | | | | | int i; | | | 3009 | | | | | | char buf[16]; | | | 3010 | | | | | | char *p; | | | 3011 | | | | | | struct pvmminfo minfo; | | | 3012 | | | | | | int outtid, outctx, outtag; | | | 3013 | | | | | | int trctid, trcctx, trctag; | | | 3014 | | | | | | int need_trcinfo = 0; | | | 3015 | | | | | | int new_tracer = 0; | | | 3016 | | | | | | char tmask[ 2 * TEV_MASK_LENGTH ];
| | | 3017 | | | | | | int tbuf, topt; | | | 3018 | | | | | | int mid; | | | 3019 | | | | | | #ifdef IMA_BEOLIN | | | 3020 | | | | | | struct hostent *hostaddr; | | | 3021 | | | | | | char namebuf[128]; | | | 3022 | | | | | | #endif | | | 3023 | | | | | | TEV_DECLS
| | | 3024 | | | | | | #ifdef WIN32 | | | 3025 | | | | | | | | | 3026 | | | | | | | | | 3027 | | | | | | | | | 3028 | | | | | | | | | 3029 | | | | | | for (ep=environ;*ep;ep++) | | | 3030 | | | | | | pvmputenv(*ep); | | | 3031 | | | | | | if (WSAStartup(0x0101, &WSAData) != 0) | | | 3032 | | | | | | { | | | 3033 | | | | | | fprintf(stderr,"\nWSAStartup() failed\n"); | | | 3034 | | | | | | ExitProcess(1); | | | 3035 | | | | | | } | | | 3036 | | | | | | | | | 3037 | | | | | | | | | 3038 | | | | | | | | | 3039 | | | | | | #endif | | | 3040 | | | | | | | | | 3041 | | | | | | | | | 3042 | | | | | | | | | 3043 | | | | | | if (pvmmytid != -1) | | | 3044 | | | | | | return 0; | | | 3045 | | | | | | | | | 3046 | | | | | | pvmmydsig = pvmgetdsig(); | | | 3047 | | | | | | | | | 3048 | | | | | | TEV_EXCLUSIVE;
| | | 3049 | | | | | | | | | 3050 | | | | | | authfn[0] = 0; | | | 3051 | | | | | | | | | 3052 | | | | | | #ifndef WIN32 | | | 3053 | | | | | | pvmmyupid = getpid(); | | | 3054 | | | | | | #else | | | 3055 | | | | | | pvmmyupid = _getpid(); | | | 3056 | | | | | | #endif | | | 3057 | | | | | | | | | 3058 | | | | | | | | | 3059 | | | | | | | | | 3060 | | | | | | | | | 3061 | | | | | | | | | 3062 | | | | | | | | | 3063 | | | | | | if (p = getenv("PVMEPID")) | | | 3064 | | | | | | cookie = atoi(p); | | | 3065 | | | | | | else | | | 3066 | | | | | | cookie = 0; | | | 3067 | | | | | | | | | 3068 | | | | | | | | | 3069 | | | | | | | | | 3070 | | | | | | #ifndef WIN32 | | | 3071 | | | | | | if ((pvm_useruid = geteuid()) == -1) { | | | 3072 | | | | | | pvmlogerror("can't getuid()\n"); | | | 3073 | | | | | | cc = PvmSysErr;
| | | 3074 | | | | | | goto bail2; | | | 3075 | | | | | | } | | | 3076 | | | | | | pvmchkuid( pvm_useruid ); | | | 3077 | | | | | | #else | | | 3078 | | | | | | if (!username) | | | 3079 | | | | | | username = MyGetUserName(); | | | 3080 | | | | | | #endif | | | 3081 | | | | | | | | | 3082 | | | | | | if (p = getenv("PVMTASKDEBUG")) { | | | 3083 | | | | | | pvmdebmask = pvmstrtoi(p); | | | 3084 | | | | | | if (pvmdebmask) { | | | 3085 | | | | | | pvmlogprintf("task debug mask is 0x%x (%s)\n", | | | 3086 | | | | | | pvmdebmask, debug_flags(pvmdebmask)); | | | 3087 | | | | | | } | | | 3088 | | | | | | } | | | 3089 | | | | | | | | | 3090 | | | | | | #ifndef IMA_MPP | | | 3091 | | | | | | if (cc = mksocs()) | | | 3092 | | | | | | goto bail2; | | | 3093 | | | | | | #endif | | | 3094 | | | | | | | | | 3095 | | | | | | | | | 3096 | | | | | | | | | 3097 | | | | | | | | | 3098 | | | | | | | | | 3099 | | | | | | pvmrxlist = pmsg_new(1); | | | 3100 | | | | | | BZERO((char*)pvmrxlist, sizeof(struct pmsg));
| | | 3101 | | | | | | pvmrxlist->m_link = pvmrxlist->m_rlink = pvmrxlist; | | | 3102 | | | | | | | | | 3103 | | | | | | ttlist = TALLOC(1, struct ttpcb, "tpcb");
| | | 3104 | | | | | | BZERO((char*)ttlist, sizeof(struct ttpcb));
| | | 3105 | | | | | | ttlist->tt_link = ttlist->tt_rlink = ttlist; | | | 3106 | | | | | | | | | 3107 | | | | | | sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
| | | 3108 | | | | | | rbf = pvm_setrbuf(0); | | | 3109 | | | | | | | | | 3110 | | | | | | | | | 3111 | | | | | | | | | 3112 | | | | | | | | | 3113 | | | | | | | | | 3114 | | | | | | #ifndef IMA_MPP | | | 3115 | | | | | | #ifndef NOPROT | | | 3116 | | | | | | (void)PVMTMPNAMFUN(authfn);
| | | 3117 | | | | | | #ifdef IMA_OS2 | | | 3118 | | | | | | if ((authfd = open(authfn, O_RDWR|O_CREAT|O_EXCL|O_TRUNC, 0600)) == -1) | | | 3119 | | | | | | #else | | | 3120 | | | | | | if ((authfd = open(authfn, O_RDONLY|O_CREAT|O_EXCL|O_TRUNC, 0600)) == -1)
| | | 3121 | | | | | | #endif | | | 3122 | | | | | | { | | | 3123 | | | | | | pvmlogperror(authfn); | | | 3124 | | | | | | pvmlogerror("pvmbeatask() can't creat t-auth file\n"); | | | 3125 | | | | | | cc = PvmSysErr;
| | | 3126 | | | | | | goto bail2; | | | 3127 | | | | | | } | | | 3128 | | | | | | #endif | | | 3129 | | | | | | | | | 3130 | | | | | | | | | 3131 | | | | | | | | | 3132 | | | | | | | | | 3133 | | | | | | | | | 3134 | | | | | | mxfersingle = 1; | | | 3135 | | | | | | prver = TDPROTOCOL;
| | | 3136 | | | | | | pvm_pkint(&prver, 1, 1); | | | 3137 | | | | | | pvm_pkstr(authfn); | | | 3138 | | | | | | if ((cc = msendrecv(TIDPVMD, TM_CONNECT, SYSCTX_TM)) <= 0)
| | | 3139 | | | | | | goto bail; | | | 3140 | | | | | | pvm_upkint(&prver, 1, 1); | | | 3141 | | | | | | if (prver != TDPROTOCOL) {
| | | 3142 | | | | | | pvmlogprintf("pvmbeatask() t-d protocol mismatch (%d/%d)\n", | | | 3143 | | | | | | TDPROTOCOL, prver);
| | | 3144 | | | | | | cc = PvmSysErr;
| | | 3145 | | | | | | goto bail; | | | 3146 | | | | | | } | | | 3147 | | | | | | pvm_upkint(&cc, 1, 1); | | | 3148 | | | | | | if (!cc) { | | | 3149 | | | | | | pvmlogerror("pvmbeatask() pvmd refuses connection\n"); | | | | | | | | | ... | | | 3408 | | | | | | pvm_setrbuf(rbf); | | | 3409 | | | | | | } | | | 3410 | | | | | | | | | 3411 | | | | | | tev_init(); | | | 3412 | | | | | | | | | 3413 | | | | | | if (TEV_AMEXCL) {
| | | 3414 | | | | | | TEV_ENDEXCL;
| | | 3415 | | | | | | } | | | 3416 | | | | | | return 0; | | | 3417 | | | | | | | | | 3418 | | | | | | bail: | | | 3419 | | | | | | if (pvm_getrbuf() > 0) | | | 3420 | | | | | | pvm_freebuf(pvm_getrbuf()); | | | 3421 | | | | | | if (pvm_getsbuf() > 0) | | | 3422 | | | | | | pvm_freebuf(pvm_getsbuf()); | | | 3423 | | | | | | pvm_setrbuf(rbf); | | | 3424 | | | | | | pvm_setsbuf(sbf); | | | 3425 | | | | | | | | | 3426 | | | | | | #ifndef IMA_MPP | | | 3427 | | | | | | if (authfd != -1) | | | 3428 | | | | | | (void)close(authfd); | | | 3429 | | | | | | if (authfn[0]) | | | 3430 | | | | | | (void)unlink(authfn); | | | 3431 | | | | | | unmksocs(); | | | 3432 | | | | | | #endif | | | 3433 | | | | | | | | | 3434 | | | | | | bail2: | | | 3435 | | | | | | if (TEV_AMEXCL) {
| | | 3436 | | | | | | TEV_ENDEXCL;
| | | 3437 | | | | | | } | | | 3438 | | | | | | return cc; | | tid is uninitialized | 3439 | | | | | | } |
| | 767 | | | | int ln, tg, sc; | | | 768 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 769 | | | | if (!cc) { | | | 770 | | | | ln = mp->m_len; | | | 771 | | | | tg = mp->m_tag; | | | 772 | | | | sc = mp->m_src; | | | 773 | | | | } | | | 774 | | | | else | | | 775 | | | | ln = tg = sc = cc; | | | 776 | | | | TEV_PACK_INT( TEV_DID_INB, TEV_DATA_SCALAR, &ln, 1, 1 );
| | | 777 | | | | TEV_PACK_INT( TEV_DID_IMC, TEV_DATA_SCALAR, &tg, 1, 1 );
| | | 778 | | | | TEV_PACK_INT( TEV_DID_IST, TEV_DATA_SCALAR, &sc, 1, 1 );
| | | 779 | | | | TEV_FIN;
| | | 780 | | | | } | | | 781 | | | | TEV_ENDEXCL;
| | | 782 | | | | } | | | 783 | | | | | | | 784 | | | | if (cc < 0) | | | 785 | | | | lpvmerr("pvm_bufinfo", cc); | | | 786 | | | | return cc; | | tid is uninitialized | 787 | | | | } |
| | 268 | | < 0 ) | | | 269 | | { | | | 270 | | pvm_perror("gs_handle(bufinfo)"); | | | 271 | | return( cc ); | | | 272 | | } | | | 273 | | | | | 274 | | | | | 275 | | | | | 276 | | REALLOCSTRING( len, mxupklen , groupname, "gs_handle(entry)" );
| | | 277 | | | | | 278 | | switch( msgtag ) | | | 279 | | { | | | 280 | | case (DIE):
| | | 281 | | gs_pstate( "pvmgs", hash_list, ngroups ); | | | 282 | | return( PvmOk );
| | | 283 | | | | | 284 | | case (JOIN):
| | | 285 | | pvm_upkstr( groupname ); | | | 286 | | gid = gs_join( groupname, tid, hash_list, ngroups ); | | | 287 | | | | | 288 | | if ( pvm_notify( PvmTaskExit, DEADTID, 1, &tid ) < 0 )
| | | | | ... | | | 348 | | pvm_upkstr( groupname ); | | | 349 | | pvm_upkint( &ftid, 1, 1 ); | | | 350 | | inst = gs_getinst( groupname, ftid, hash_list, ngroups, | | | 351 | | &gstate ); | | | 352 | | PK_IRESULT( inst, "gs_handle(getinst)" );
| | | 353 | | PK_STATE( tid, gstate, groupname, hash_list, ngroups,
| /u1/paul/SATE/2010/c/pvm/pvm3/pvmgs/pvmgs_mac.h | | 61 | #define PK_STATE( tid, state, name, hash_list, ngroups, caller ) \ | | 62 | { if ( pvm_pkint( &(state), 1, 1 ) < 0 ) \ | | 63 | pvm_perror( caller ); \ | | 64 | if ( state == STATIC ) \ | | 65 | if ( gs_newstaticcache( tid, name, hash_list, ngroups, \ | | 66 | caller ) == PvmgsNotCached ) \ | | 67 | gs_pkstaticinfo( gs_group( name, hash_list, ngroups, \ | | 68 | NOCREATE ) ); \ | | 69 | } |
| | | 354 | | "gs_handle(getinst)" ); | | | 355 | | SENDRESULT( tid, msgtag, "gs_handle(getinst)" );
| | | 356 | | break; | | | 357 | | | | | 358 | | case (GETTID):
|
| | 1680 | | | | pvm_upkstr(cp) | | | 1681 | | | | char *cp; | | | 1682 | | | | { | | | 1683 | | | | int l; | | | 1684 | | | | int cc; | | | 1685 | | | | long ad; | | | 1686 | | | | TEV_DECLS
| | | 1687 | | | | | | | 1688 | | | | if (TEV_EXCLUSIVE) {
| | | 1689 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_ENTRY)) {
| | | 1690 | | | | ad = (long)cp; | | | 1691 | | | | TEV_PACK_LONG( TEV_DID_PDA, TEV_DATA_SCALAR, &ad, 1, 1 );
| | | 1692 | | | | TEV_FIN;
| | | 1693 | | | | } | | | 1694 | | | | } | | | 1695 | | | | | | | 1696 | | | | if (!pvmrbuf) | | | 1697 | | | | cc = PvmNoBuf;
| | | 1698 | | | | else { | | | 1699 | | | | if (!(cc = (pvmrbuf->m_codef->dec_int) | | | 1700 | | | | (pvmrbuf, (void*)&l, 1, 1, sizeof(int)))) | | | 1701 | | | | cc = (pvmrbuf->m_codef->dec_byte) | | | 1702 | | | | (pvmrbuf, (void*)cp, l, 1, 1); | | | 1703 | | | | } | | | 1704 | | | | | | | 1705 | | | | if (TEV_AMEXCL) {
| | | 1706 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_EXIT)) {
| | | 1707 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 1708 | | | | TEV_FIN;
| | | 1709 | | | | } | | | 1710 | | | | TEV_ENDEXCL;
| | | 1711 | | | | } | | | 1712 | | | | return (cc < 0 ? lpvmerr("pvm_upkstr", cc) : PvmOk);
| | tid is uninitialized | 1713 | | | | } |
| | 1255 | | | | pvm_upkint(np, cnt, std) | | | 1256 | | | | int *np; | | | 1257 | | | | int cnt; | | | 1258 | | | | int std; | | | 1259 | | | | { | | | 1260 | | | | int cc; | | | 1261 | | | | long ad; | | | 1262 | | | | TEV_DECLS
| | | 1263 | | | | | | | 1264 | | | | if (TEV_EXCLUSIVE) {
| | | 1265 | | | | if (TEV_DO_TRACE(TEV_UPKINT,TEV_EVENT_ENTRY)) {
| | | 1266 | | | | ad = (long)np; | | | 1267 | | | | TEV_PACK_LONG( TEV_DID_PDA, TEV_DATA_SCALAR, &ad, 1, 1 );
| | | 1268 | | | | TEV_PACK_INT( TEV_DID_PC, TEV_DATA_SCALAR, &cnt, 1, 1 );
| | | 1269 | | | | TEV_PACK_INT( TEV_DID_PSD, TEV_DATA_SCALAR, &std, 1, 1 );
| | | 1270 | | | | TEV_FIN;
| | | 1271 | | | | } | | | 1272 | | | | } | | | 1273 | | | | | | | 1274 | | | | if (cnt < 0) | | | 1275 | | | | cc = PvmBadParam;
| | | 1276 | | | | else if (!pvmrbuf) | | | 1277 | | | | cc = PvmNoBuf;
| | | 1278 | | | | else | | | 1279 | | | | cc = (pvmrbuf->m_codef->dec_int) (pvmrbuf, (void*)np, cnt, std, sizeof(int)); | | | 1280 | | | | | | | 1281 | | | | if (TEV_AMEXCL) {
| | | 1282 | | | | if (TEV_DO_TRACE(TEV_UPKINT,TEV_EVENT_EXIT)) {
| | | 1283 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 1284 | | | | TEV_FIN;
| | | 1285 | | | | } | | | 1286 | | | | TEV_ENDEXCL;
| | | 1287 | | | | } | | | 1288 | | | | return (cc < 0 ? lpvmerr("pvm_upkint", cc) : PvmOk);
| | tid is uninitialized | 1289 | | | | } |
| | 361 | | ftid = gs_gettid( groupname, inst, hash_list, ngroups, | | | 362 | | &gstate ); | | | 363 | | PK_IRESULT( ftid, "gs_handle(gettid)" );
| | | 364 | | PK_STATE( tid, gstate, groupname, hash_list, ngroups,
| /u1/paul/SATE/2010/c/pvm/pvm3/pvmgs/pvmgs_mac.h | | 61 | #define PK_STATE( tid, state, name, hash_list, ngroups, caller ) \ | | 62 | { if ( pvm_pkint( &(state), 1, 1 ) < 0 ) \ | | 63 | pvm_perror( caller ); \ | | 64 | if ( state == STATIC ) \ | | 65 | if ( gs_newstaticcache( tid, name, hash_list, ngroups, \ | | 66 | caller ) == PvmgsNotCached ) \ | | 67 | gs_pkstaticinfo( gs_group( name, hash_list, ngroups, \ | | 68 | NOCREATE ) ); \ | | 69 | } |
| | tid is uninitialized | 365 | | "gs_handle(gettid)" ); |
|