blob: 34a0f502de95ed83abe09e98eb2d18bec30c5e96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* AsyncIO.h
*
* Integrating Win32 asynchronous IOCP with the GHC RTS.
*
* (c) Tamar Christina, 2018
*
* NOTE: This is the WinIO manager, only used for --io-manager=native.
* For the MIO manager see AsyncIO.h.
*/
#pragma once
#include "Rts.h"
#include <stdbool.h>
#include <windows.h>
extern bool startupAsyncWinIO(void);
extern void shutdownAsyncWinIO(bool wait_threads);
extern void awaitAsyncRequests(bool wait);
extern void registerNewIOCPHandle (HANDLE port);
extern void registerAlertableWait (HANDLE port, DWORD mssec, uint64_t num_req);
extern OVERLAPPED_ENTRY* getOverlappedEntries (uint32_t *num);
extern void servicedIOEntries (uint64_t remaining);
extern void completeSynchronousRequest (void);
|