mirror of
https://github.com/containers/podman.git
synced 2025-08-03 01:37:51 +08:00

Also, do a general cleanup of all the timeout code. Changes include: - Convert from int to *uint where possible. Timeouts cannot be negative, hence the uint change; and a timeout of 0 is valid, so we need a new way to detect that the user set a timeout (hence, pointer). - Change name in the database to avoid conflicts between new data type and old one. This will cause timeouts set with 4.2.0 to be lost, but considering nobody is using the feature at present (and the lack of validation means we could have invalid, negative timeouts in the DB) this feels safe. - Ensure volume plugin timeouts can only be used with volumes created using a plugin. Timeouts on the local driver are nonsensical. - Remove the existing test, as it did not use a volume plugin. Write a new test that does. The actual plumbing of the containers.conf timeout in is one line in volume_api.go; the remainder are the above-described cleanups. Signed-off-by: Matthew Heon <mheon@redhat.com>
66 lines
2.0 KiB
Go
66 lines
2.0 KiB
Go
package winapi
|
|
|
|
const PROCESS_ALL_ACCESS uint32 = 2097151
|
|
|
|
const (
|
|
PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x20016
|
|
PROC_THREAD_ATTRIBUTE_JOB_LIST = 0x2000D
|
|
)
|
|
|
|
// ProcessVmCounters corresponds to the _VM_COUNTERS_EX and _VM_COUNTERS_EX2 structures.
|
|
const ProcessVmCounters = 3
|
|
|
|
// __kernel_entry NTSTATUS NtQueryInformationProcess(
|
|
// [in] HANDLE ProcessHandle,
|
|
// [in] PROCESSINFOCLASS ProcessInformationClass,
|
|
// [out] PVOID ProcessInformation,
|
|
// [in] ULONG ProcessInformationLength,
|
|
// [out, optional] PULONG ReturnLength
|
|
// );
|
|
//
|
|
//sys NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) = ntdll.NtQueryInformationProcess
|
|
|
|
// typedef struct _VM_COUNTERS_EX
|
|
// {
|
|
// SIZE_T PeakVirtualSize;
|
|
// SIZE_T VirtualSize;
|
|
// ULONG PageFaultCount;
|
|
// SIZE_T PeakWorkingSetSize;
|
|
// SIZE_T WorkingSetSize;
|
|
// SIZE_T QuotaPeakPagedPoolUsage;
|
|
// SIZE_T QuotaPagedPoolUsage;
|
|
// SIZE_T QuotaPeakNonPagedPoolUsage;
|
|
// SIZE_T QuotaNonPagedPoolUsage;
|
|
// SIZE_T PagefileUsage;
|
|
// SIZE_T PeakPagefileUsage;
|
|
// SIZE_T PrivateUsage;
|
|
// } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
|
|
//
|
|
type VM_COUNTERS_EX struct {
|
|
PeakVirtualSize uintptr
|
|
VirtualSize uintptr
|
|
PageFaultCount uint32
|
|
PeakWorkingSetSize uintptr
|
|
WorkingSetSize uintptr
|
|
QuotaPeakPagedPoolUsage uintptr
|
|
QuotaPagedPoolUsage uintptr
|
|
QuotaPeakNonPagedPoolUsage uintptr
|
|
QuotaNonPagedPoolUsage uintptr
|
|
PagefileUsage uintptr
|
|
PeakPagefileUsage uintptr
|
|
PrivateUsage uintptr
|
|
}
|
|
|
|
// typedef struct _VM_COUNTERS_EX2
|
|
// {
|
|
// VM_COUNTERS_EX CountersEx;
|
|
// SIZE_T PrivateWorkingSetSize;
|
|
// SIZE_T SharedCommitUsage;
|
|
// } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2;
|
|
//
|
|
type VM_COUNTERS_EX2 struct {
|
|
CountersEx VM_COUNTERS_EX
|
|
PrivateWorkingSetSize uintptr
|
|
SharedCommitUsage uintptr
|
|
}
|