mirror of
https://github.com/NixOS/nix.git
synced 2025-11-10 12:36:01 +01:00
This will facilitate breaking up Nix into multiple packages for each component with Meson.
27 lines
518 B
C++
27 lines
518 B
C++
#pragma once
|
|
///@file
|
|
|
|
#include "file-descriptor.hh"
|
|
|
|
namespace nix::windows {
|
|
|
|
/***
|
|
* An "async pipe" is a pipe that supports I/O Completion Ports so
|
|
* multiple pipes can be listened too.
|
|
*
|
|
* Unfortunately, only named pipes support that on windows, so we use
|
|
* those with randomized temp file names.
|
|
*/
|
|
class AsyncPipe
|
|
{
|
|
public:
|
|
AutoCloseFD writeSide, readSide;
|
|
OVERLAPPED overlapped;
|
|
DWORD got;
|
|
std::vector<unsigned char> buffer;
|
|
|
|
void createAsyncPipe(HANDLE iocp);
|
|
void close();
|
|
};
|
|
|
|
}
|