| 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 | | |
| | 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 )
| | | | | ... | | | 337 | | case (GSIZE):
| | | 338 | | pvm_upkstr( groupname ); | | | 339 | | size = gs_gsize( groupname, hash_list, ngroups, | | | 340 | | &gstate ); | | | 341 | | PK_IRESULT( size, "gs_handle(gsize)" );
| | | 342 | | PK_STATE( tid, gstate, groupname, hash_list, ngroups,
| /kat0/fletcher/SATE/2010/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 | } |
| | | 343 | | "gs_handle(gsize)" ); | | | 344 | | SENDRESULT( tid, msgtag, "gs_handle(gsize)" );
| | | 345 | | break; | | | 346 | | | | | 347 | | case (GETINST):
|
| | 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 | | | | } |
| | 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,
| /kat0/fletcher/SATE/2010/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)" ); | | tid is uninitialized | 355 | | SENDRESULT( tid, msgtag, "gs_handle(getinst)" );
|
|