| | 1842 | | return PvmNoMem;
|
| referenced by freefrags.fr_link->fr_dat and 1 others | 1843 | | txfp->fr_dat += MAXHDR; | Problem | | referenced by freefrags.fr_link->fr_dat and 1 others |
|
| | 1844 | | LISTPUTBEFORE(txup->m_frag, txfp, fr_link, fr_rlink);
|
| | 1845 | | } |
| | 1846 | | |
| | 1847 | | if (!(txpcbp = ttpcb_find(txup->m_dst)) || txpcbp->tt_state != TTOPEN)
|
| | 1848 | | txpcbp = topvmd; |
| | 1849 | | txup->m_ref++; |
| | 1850 | | bypassRead = TRUE;
|
| | 1851 | | } |
| | 1852 | | |
| | 1853 | | if (pvmdebmask & PDMMESSAGE) {
|
| | 1854 | | pvmlogprintf("mxfer() mid %d", (txup ? txup->m_mid : 0)); |
| | 1855 | | if (txup) |
| | 1856 | | pvmlogprintf(" ctx %d tag %s dst t%x route t%x", |
| | 1857 | | txup->m_ctx, |
| | 1858 | | pvmnametag(txup->m_tag, (int *)0), |
| | 1859 | | txup->m_dst, txpcbp->tt_tid); |
| | 1860 | | if (tmout) |
| | 1861 | | pvmlogprintf(" tmout %d.%06d\n", |
| | 1862 | | tmout->tv_sec, tmout->tv_usec); |
| | 1863 | | else |
| | | | ... |
| | 1872 | | |
| | 1873 | | |
| | 1874 | | |
| | 1875 | | |
| | 1876 | | |
| | 1877 | | |
| | 1878 | | |
| | 1879 | | |
| | 1880 | | |
| | 1881 | | |
| | 1882 | | while (txfp || topvmd->tt_rxf || wantmore || waitForOgmToComplete |
| | 1883 | | || !probedForIncomingPkts |
| | 1884 | | ) |
| | 1885 | | { |
| | 1886 | | |
| | 1887 | | totfr = 0; |
| | 1888 | | |
| | 1889 | | |
| | 1890 | | if (txfp || topvmd->tt_rxf) |
| | 1891 | | { |
| | 1892 | | |
| | 1893 | | tvp = (struct timeval *) NULL;
|
| | 1894 | | |
| | 1895 | | } |
| | 1896 | | else |
| | 1897 | | { |
| | 1898 | | if (wantmore) |
| | 1899 | | { |
| | 1900 | | |
| | 1901 | | |
| | 1902 | | |
| | 1903 | | |
| | | | ... |
| | 1930 | | tvp = &tnow; |
| | 1931 | | } |
| | 1932 | | } |
| | 1933 | | |
| | 1934 | | |
| | 1935 | | |
| | 1936 | | |
| | 1937 | | |
| | 1938 | | |
| | 1939 | | #if !defined(IMA_MPP) |
| | 1940 | | rfds = pvmrfds; |
| | 1941 | | FD_ZERO(&wfds);
|
| | 1942 | | if (txfp) |
| | 1943 | | FD_SET(txpcbp->tt_fd, &wfds);
|
| | 1944 | | #endif |
| | 1945 | | |
| | 1946 | | if (pvmdebmask & PDMSELECT) {
|
| | 1947 | | if (tvp) |
| | 1948 | | pvmlogprintf("mxfer() select timeout %d.%06d\n", |
| | 1949 | | tvp->tv_sec, tvp->tv_usec); |
| | 1950 | | else |
| | 1951 | | pvmlogprintf("mxfer() select timeout inf\n"); |
| | 1952 | | #if !defined(IMA_MPP) |
| | 1953 | | print_fdset("mxfer() rfds=", pvmnfds, &rfds); |
| | 1954 | | print_fdset("mxfer() wfds=", pvmnfds, &wfds); |
| | 1955 | | #endif |
| | 1956 | | } |
| | 1957 | | |
| | 1958 | | #if !defined(IMA_MPP) |
| | 1959 | | probedForIncomingPkts = TRUE;
|
| | 1960 | | if ((n = select(pvmnfds, |
| | 1961 | | #ifdef FDSETISINT |
| | 1962 | | (int *)&rfds, (int *)&wfds, (int *)0, |
| | 1963 | | #else |
| | 1964 | | (fd_set *)&rfds, (fd_set *)&wfds, (fd_set*)0, |
| | 1965 | | #endif |
| | 1966 | | tvp)) == -1 |
| | 1967 | | && errno != EINTR
|
| | 1968 | | #ifdef IMA_LINUX |
| | 1969 | | && errno != EAGAIN
|
| | 1970 | | #endif |
| | 1971 | | ) { |
| | 1972 | | pvmlogperror("mxfer() select"); |
| | 1973 | | return PvmSysErr;
|
| | 1974 | | } |
| | 1975 | | if (pvmdebmask & PDMSELECT) {
|
| | 1976 | | pvmlogprintf("mxfer() select returns %d\n", n); |
| | 1977 | | } |
| | 1978 | | if (n == -1) |
| | 1979 | | continue; |
| | 1980 | | |
| | 1981 | | |
| | 1982 | | |
| | 1983 | | |
| | 1984 | | if (FD_ISSET(topvmd->tt_fd, &rfds)
|
| | 1985 | | && !(mxfersingle && gotem)) |
| | 1986 | | { |