chore: release 0.29.0.rc0 (#1600)

This commit is contained in:
Jan-Otto Kröpke
2024-09-11 00:34:10 +02:00
committed by GitHub
parent 83b0aa8f62
commit f712c07c38
119 changed files with 5113 additions and 2255 deletions

View File

@@ -119,6 +119,8 @@ import (
"strings"
"syscall"
"unsafe"
"golang.org/x/sys/windows"
)
// TODO: There's a LittleEndian field in the PERF header - we ought to check it.
@@ -204,7 +206,7 @@ func queryRawData(query string) ([]byte, error) {
buffer = make([]byte, bufLen)
name, err := syscall.UTF16PtrFromString(query)
name, err := windows.UTF16PtrFromString(query)
if err != nil {
return nil, fmt.Errorf("failed to encode query string: %w", err)
}
@@ -212,21 +214,23 @@ func queryRawData(query string) ([]byte, error) {
for {
bufLen := uint32(len(buffer))
//nolint:forbidigo // Legacy Code
err := syscall.RegQueryValueEx(
syscall.HKEY_PERFORMANCE_DATA,
windows.HKEY_PERFORMANCE_DATA,
name,
nil,
&valType,
(*byte)(unsafe.Pointer(&buffer[0])),
&bufLen)
if errors.Is(err, error(syscall.ERROR_MORE_DATA)) {
if errors.Is(err, error(syscall.ERROR_MORE_DATA)) { //nolint:forbidigo // Legacy Code
newBuffer := make([]byte, len(buffer)+16384)
copy(newBuffer, buffer)
buffer = newBuffer
continue
} else if err != nil {
var errNo syscall.Errno
var errNo syscall.Errno //nolint:forbidigo // Legacy Code
if errors.As(err, &errNo) {
return nil, fmt.Errorf("ReqQueryValueEx failed: %w errno %d", err, uint(errNo))
}
@@ -276,6 +280,7 @@ func QueryPerformanceData(query string) ([]*PerfObject, error) {
// Read global header
header := new(perfDataBlock)
err = header.BinaryReadFrom(r)
if err != nil {
return nil, fmt.Errorf("failed to read performance data block for %q with: %w", query, err)
@@ -300,6 +305,7 @@ func QueryPerformanceData(query string) ([]*PerfObject, error) {
}
obj := new(perfObjectType)
err = obj.BinaryReadFrom(r)
if err != nil {
return nil, err
@@ -329,6 +335,7 @@ func QueryPerformanceData(query string) ([]*PerfObject, error) {
for i := range numCounterDefs {
def := new(perfCounterDefinition)
err := def.BinaryReadFrom(r)
if err != nil {
return nil, err
@@ -410,7 +417,9 @@ func parseCounterBlock(b []byte, r io.ReadSeeker, pos int64, defs []*PerfCounter
if err != nil {
return 0, nil, err
}
block := new(perfCounterBlock)
err = block.BinaryReadFrom(r)
if err != nil {
return 0, nil, err
@@ -453,7 +462,6 @@ func convertCounterValue(counterDef *perfCounterDefinition, buffer []byte, value
272696576 64bit rate
*/
switch counterDef.CounterSize {
case 4:
value = int64(bo.Uint32(buffer[valueOffset:(valueOffset + 4)]))