| | 546 | | hostfailentry(hp) |
| | 547 | | struct hostd *hp; |
| | 548 | | { |
| | 549 | | int hpart = hp->hd_hostpart; |
| | 550 | | struct waitc *wp, *wp2; |
| | 551 | | struct pmsg *mp; |
| | 552 | | struct pvmmentry *ep; |
| | 553 | | |
| | 554 | | if (pvmdebmask & PDMHOST) {
|
| | 555 | | pvmlogprintf("hostfailentry() host %s\n", hp->hd_name); |
| | 556 | | hd_dump(hp); |
| | 557 | | } |
| | 558 | | |
| | 559 | | if (hp == hosts->ht_hosts[hosts->ht_master]) { |
| | 560 | | pvmlogerror("hostfailentry() lost master host, we're screwwwed\n"); |
| | 561 | | pvmbailout(0); |
| | 562 | | } |
| | 563 | | |
| | 564 | | |
| | 565 | | |
| | 566 | | |
| | 567 | | |
| | 568 | | if (hp->hd_hostpart && hosts->ht_master == hosts->ht_local) { |
| | 569 | | struct hostd *hp2; |
| | 570 | | int hh; |
| | 571 | | |
| | 572 | | mp = mesg_new(0); |
| | 573 | | mp->m_tag = DM_HTDEL;
|
| | 574 | | pkint(mp, hosts->ht_serial); |
| | 575 | | pkint(mp, hp->hd_hostpart); |
| | 576 | | for (hh = hosts->ht_last; hh > 0; hh--) |
| | 577 | | if (hh != hosts->ht_local |
| | 578 | | && (hp2 = hosts->ht_hosts[hh]) && hp2 != hp) { |
| | 579 | | mp->m_ref++; |
| | 580 | | mp->m_dst = hp2->hd_hostpart | TIDPVMD;
|
| | 581 | | sendmessage(mp); |
| | 582 | | } |
| | 583 | | pmsg_unref(mp); |
| | 584 | | |
| | 585 | | |
| | 586 | | |
| | 587 | | if (pvmschedtid) { |