aboutsummaryrefslogtreecommitdiff
path: root/core/os/os2/pipe_windows.odin
blob: ee93fb6834d0f2eb41626a2f47866f2ae28709ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#+private
package os2

import win32 "core:sys/windows"

_pipe :: proc() -> (r, w: ^File, err: Error) {
	p: [2]win32.HANDLE
	sa := win32.SECURITY_ATTRIBUTES {
		nLength = size_of(win32.SECURITY_ATTRIBUTES),
		bInheritHandle = true,
	}
	if !win32.CreatePipe(&p[0], &p[1], &sa, 0) {
		return nil, nil, _get_platform_error()
	}
	return new_file(uintptr(p[0]), ""), new_file(uintptr(p[1]), ""), nil
}