aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2025-05-12 15:51:24 +0300
committerthegeorg <thegeorg@yandex-team.com>2025-05-12 16:06:27 +0300
commitd629bb70c8773d2c0c43f5088ddbb5a86d8c37ea (patch)
tree4f678e0d65ad08c800db21c657d3b0f71fafed06 /contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c
parent92c4b696d7a1c03d54e13aff7a7c20a078d90dd7 (diff)
downloadydb-d629bb70c8773d2c0c43f5088ddbb5a86d8c37ea.tar.gz
Update contrib/restricted/aws libraries to nixpkgs 24.05
commit_hash:f8083acb039e6005e820cdee77b84e0a6b6c6d6d
Diffstat (limited to 'contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c')
-rw-r--r--contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c b/contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c
new file mode 100644
index 00000000000..68165072b2f
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-common/source/posix/system_resource_utils.c
@@ -0,0 +1,32 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/common/system_resource_util.h>
+
+#include <sys/resource.h>
+
+int aws_init_memory_usage_for_current_process(struct aws_memory_usage_stats *memory_usage) {
+ AWS_PRECONDITION(memory_usage);
+
+ AWS_ZERO_STRUCT(*memory_usage);
+ struct rusage usage;
+
+ if (getrusage(RUSAGE_SELF, &usage)) {
+ return aws_raise_error(AWS_ERROR_SYS_CALL_FAILURE);
+ }
+
+#if defined(AWS_OS_APPLE)
+ /*
+ * For some reason Apple switched to reporting this in bytes instead of KB
+ * around MacOS 10.6.
+ * Make it back to KB. Result might be slightly off due to rounding.
+ */
+ memory_usage->maxrss = usage.ru_maxrss / 1024;
+#else
+ memory_usage->maxrss = usage.ru_maxrss;
+#endif
+ memory_usage->page_faults = usage.ru_majflt;
+ return AWS_OP_SUCCESS;
+}