Changeset 7551 for trunk/src


Ignore:
Timestamp:
Dec 5, 2001, 7:06:57 PM (24 years ago)
Author:
sandervl
Message:

overlapped io updates

Location:
trunk/src/kernel32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/overlappedio.cpp

    r7550 r7551  
    1 /* $Id: overlappedio.cpp,v 1.2 2001-12-05 18:06:02 sandervl Exp $ */
     1/* $Id: overlappedio.cpp,v 1.3 2001-12-05 18:06:57 sandervl Exp $ */
    22
    33/*
     
    8686    //fall through
    8787failed:
    88     //SvL: NOTE: We might not failed gracefully when threads have already been
     88    //SvL: NOTE: We might not fail gracefully when threads have already been
    8989    //           created. (thread accessing memory that has been freed)
    9090    //           Don't feel like wasting time to fix this as this should never
  • trunk/src/kernel32/overlappedio.h

    r7549 r7551  
    1 /* $Id: overlappedio.h,v 1.1 2001-12-05 14:16:38 sandervl Exp $ */
     1/* $Id: overlappedio.h,v 1.2 2001-12-05 18:06:03 sandervl Exp $ */
    22
    33/*
     
    1313#define __OVERLAPPEDIO_H__
    1414
     15#define EVENT_READ              1
     16#define EVENT_WRITE             2
     17#define EVENT_READWRITE         (EVENT_WRITE|EVENT_READ)
     18#define EVENT_POLL              4
     19
     20//forward decl
     21class OverlappedIOHandler;
     22
     23typedef struct {
     24    DWORD                fEvent;
     25    OverlappedIOHandler *lpOverlappedObj;
     26} OVERLAPPED_THREAD_PARAM, *LPOVERLAPPED_THREAD_PARAM;
     27
     28typedef DWORD (* SYSTEM LPOVERLAPPED_HANDLER)(DWORD dwUserData, LPOVERLAPPED lpOverlapped);
     29
     30enum OverlappedIOError {
     31  OutOfMemory, EventCreationFailed, ThreadCreationFailed
     32};
    1533
    1634class OverlappedIOHandler
    1735{
    1836public:
    19      OverlappedIOHandler(
     37     OverlappedIOHandler(LPOVERLAPPED_HANDLER lpReadHandler,
     38                         LPOVERLAPPED_HANDLER lpWriteHandler,
     39                         LPOVERLAPPED_HANDLER lpPollHandler = NULL);
     40    ~OverlappedIOHandler();
    2041
    2142     BOOL   WriteFile(HANDLE        hOS2Handle,
     
    3859                                LPOVERLAPPED  lpoOverlapped,
    3960                                LPDWORD       lpcbTransfer,
    40                                 DWORD         dwTimeout)
     61                                DWORD         dwTimeout);
    4162
    4263protected:
     
    4465private:
    4566
    46      HANDLE       hThreadEvent;
     67     DWORD        threadHandler(DWORD fEvent);
     68
     69     HANDLE       hThreadPoll;
    4770     HANDLE       hThreadRead;
    4871     HANDLE       hThreadWrite;
     
    5275     HANDLE       hEventWrite;
    5376
     77     LPOVERLAPPED_HANDLER lpReadHandler;
     78     LPOVERLAPPED_HANDLER lpWriteHandler;
     79     LPOVERLAPPED_HANDLER lpPollHandler;
     80
     81     CRITICAL_SECTION     critsect;
     82
    5483     //linked list of pending operations
    5584     LPOVERLAPPED pending;
    5685
     86
     87     friend       DWORD CALLBACK OverlappedIOThread(LPVOID lpThreadParam);
    5788};
    5889
Note: See TracChangeset for help on using the changeset viewer.