Changeset 3265 for trunk/src


Ignore:
Timestamp:
Mar 28, 2000, 9:10:09 PM (25 years ago)
Author:
sandervl
Message:

FD_CLOSE fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wsock32/asyncapi.cpp

    r3260 r3265  
    1 /* $Id: asyncapi.cpp,v 1.4 2000-03-28 17:13:05 sandervl Exp $ */
     1/* $Id: asyncapi.cpp,v 1.5 2000-03-28 19:10:09 sandervl Exp $ */
    22
    33/*
     
    460460        if(ret == SOCKET_ERROR) {
    461461                int selecterr = sock_errno();
    462                 dprintf(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x select returned %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending, selecterr));
     462////            dprintf(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x select returned %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending, selecterr));
    463463                if(selecterr && selecterr < SOCBASEERR) {
    464464                        selecterr += SOCBASEERR;
     
    467467                {
    468468                case SOCEINTR:
    469                         state = ioctl(s, FIOBSTATUS, (char *)&tmp, sizeof(tmp));
    470                         dprintf(("SOCEINTR; state = %x", state));
     469////                    state = ioctl(s, FIOBSTATUS, (char *)&tmp, sizeof(tmp));
     470////                    dprintf(("SOCEINTR; state = %x", state));
    471471                        goto asyncloopstart;    //so_cancel was called
    472472
     
    520520        {
    521521                state = ioctl(s, FIONREAD, (CHAR *) &bytesread, sizeof(bytesread));
    522                 if(state == SOCKET_ERROR) {
     522                if(state == SOCKET_ERROR)
     523                {
    523524                        if(lEventsPending & FD_CLOSE)
    524525                        {
     
    550551                if((lEventsPending & FD_READ) && bytesread > 0) {
    551552                        AsyncNotifyEvent(pThreadParm, FD_READ, NO_ERROR);
     553                }
     554                else
     555                if((lEventsPending & FD_CLOSE) && (state == 0 && bytesread == 0)) {
     556                        AsyncNotifyEvent(pThreadParm, FD_CLOSE, NO_ERROR);
    552557                }
    553558        }
Note: See TracChangeset for help on using the changeset viewer.