summaryrefslogtreecommitdiff
path: root/utility/rtos_compatibility_layers/posix/px_system_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'utility/rtos_compatibility_layers/posix/px_system_manager.c')
-rw-r--r--utility/rtos_compatibility_layers/posix/px_system_manager.c67
1 files changed, 30 insertions, 37 deletions
diff --git a/utility/rtos_compatibility_layers/posix/px_system_manager.c b/utility/rtos_compatibility_layers/posix/px_system_manager.c
index ef24202b..92b71414 100644
--- a/utility/rtos_compatibility_layers/posix/px_system_manager.c
+++ b/utility/rtos_compatibility_layers/posix/px_system_manager.c
@@ -1,18 +1,19 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
/**************************************************************************/
/**************************************************************************/
-/** */
-/** POSIX wrapper for THREADX */
+/** */
+/** POSIX wrapper for THREADX */
/** */
/** */
/** */
@@ -25,46 +26,38 @@
#include "pthread.h" /* Posix API */
#include "px_int.h" /* Posix helper functions */
-/**************************************************************************/
-/* */
-/* FUNCTION RELEASE */
-/* */
-/* posix_system_manager_entry PORTABLE C */
+/**************************************************************************/
+/* */
+/* FUNCTION RELEASE */
+/* */
+/* posix_system_manager_entry PORTABLE C */
/* 6.2.0 */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
/* */
-/* DESCRIPTION */
-/* */
+/* DESCRIPTION */
+/* */
/* This is the System Manager thread for the POSIX> The system */
/* manager thread cleans up terminated threads and releases */
/* the stack memory associated with the thread */
-/* */
-/* INPUT */
-/* */
-/* input Not used */
-/* */
-/* OUTPUT */
-/* */
-/* None */
-/* */
-/* CALLS */
/* */
-/* tx_queue_receive Receive system request */
+/* INPUT */
+/* */
+/* input Not used */
+/* */
+/* OUTPUT */
+/* */
+/* None */
+/* */
+/* CALLS */
+/* */
+/* tx_queue_receive Receive system request */
/* posix_do_pthread_delete Delete a pthread */
/* */
-/* CALLED BY */
-/* */
-/* Start-up code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
+/* CALLED BY */
/* */
-/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
-/* 10-31-2022 Scott Larson Add 64-bit support, */
-/* resulting in version 6.2.0 */
+/* Start-up code */
/* */
/**************************************************************************/
VOID posix_system_manager_entry(ULONG input)
@@ -79,18 +72,18 @@ VOID *value_ptr;
/* Avoid compiler warning. */
TX_PARAMETER_NOT_USED(input);
- /* Loop forever, waiting for work requests. */
+ /* Loop forever, waiting for work requests. */
while(1)
{
/* Wait forever for the next work request. */
status = tx_queue_receive(&posix_work_queue, &request, TX_WAIT_FOREVER);
- /* Make sure we didn't encounter any trouble. */
+ /* Make sure we didn't encounter any trouble. */
if (status != TX_SUCCESS)
{
/* Get the next message. */
continue;
}
-
+
#ifdef TX_64_BIT
pthread_ptr = (POSIX_TCB *)((((ALIGN_TYPE)request[0]) << 32) | request[1]);
value_ptr = (VOID *)((((ALIGN_TYPE)request[2]) << 32) | request[3]);
@@ -101,7 +94,7 @@ VOID *value_ptr;
/* Delete the pthread */
posix_do_pthread_delete(pthread_ptr, value_ptr);
-
+
} /* System Manager forever loop */
}