From fbc5f66c15abe3b94be6bbb3f4f35fb341c7409c Mon Sep 17 00:00:00 2001 From: manojampalam Date: Wed, 24 Feb 2016 13:50:35 -0800 Subject: [PATCH] Updated ...md (markdown) --- ...md.md | 1 + 1 file changed, 1 insertion(+) diff --git a/...md.md b/...md.md index c99452e..112b4a5 100644 --- a/...md.md +++ b/...md.md @@ -36,6 +36,7 @@ Brief design details of POSIX wrapper + Uses [APCs](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681951(v=vs.85).aspx) wherever available and minimzing use of [events](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682655(v=vs.85).aspx). This simplifies code and has performance benefits. + Maintains internal buffers to accommodate an underlying fundamental difference between POSIX and Win32 IO APIs - IOReady Vs IOComplete (Ex for a Read operation, POSIX APIs signal when IO is ready - date will be subsequently, explicitly read, Win32 APIs signal when IO has completed - data is already copied to a user provided buffer. Though this may be perceived as a performance hit, a validation exercise did not show any major impact. It in fact proved beneficial in reducing kernel calls during "read"s (ex. reading a header, would fetch the entire packet in a single call). + Additional details on underlying Win32 calls used + | POSIX IO call | Underlying Win32 IO call | Additional details | |:-----|:-----|:-----| | accept | AcceptEx | No APC semantics so, explicit event used for async IO |