diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2024-02-12 01:26:34 -0500 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-02-12 18:52:21 +0100 |
commit | 10b25803ce879ee6ac832b884bfdabc79769486a (patch) | |
tree | 75aa37ab8f0f8ed3ae2e7009027329cf6937df29 /kern/thread.c | |
parent | df9270ef134498d4fffb921286375137d3639ae5 (diff) | |
download | gnumach-10b25803ce879ee6ac832b884bfdabc79769486a.tar.gz gnumach-10b25803ce879ee6ac832b884bfdabc79769486a.tar.bz2 gnumach-10b25803ce879ee6ac832b884bfdabc79769486a.zip |
Add thread_set_name RPC.
Like task_set_name, we use the same size as the task name and will
inherit the task name, whenever it exists. This will be used to
implement pthread_setname_np.
Message-ID: <20240212062634.1082207-2-flaviocruz@gmail.com>
Diffstat (limited to 'kern/thread.c')
-rw-r--r-- | kern/thread.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/kern/thread.c b/kern/thread.c index 23ee8b09..2eab1ca4 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -46,6 +46,7 @@ #include <kern/counters.h> #include <kern/debug.h> #include <kern/eventcount.h> +#include <kern/gnumach.server.h> #include <kern/ipc_mig.h> #include <kern/ipc_tt.h> #include <kern/mach_debug.server.h> @@ -551,6 +552,10 @@ kern_return_t thread_create( #endif /* MACH_PCSAMPLE */ new_thread->pc_sample.buffer = 0; + + /* Inherit the task name as the thread name. */ + memcpy (new_thread->name, parent_task->name, THREAD_NAME_SIZE); + /* * Add the thread to the task`s list of threads. * The new thread holds another reference to the task. @@ -2624,3 +2629,18 @@ thread_stats(void) printf("%d using rpc_reply.\n", rpcreply); } #endif /* MACH_DEBUG */ + +/* + * thread_set_name + * + * Set the name of thread THREAD to NAME. + */ +kern_return_t +thread_set_name( + thread_t thread, + const_kernel_debug_name_t name) +{ + strncpy(thread->name, name, sizeof thread->name - 1); + thread->name[sizeof thread->name - 1] = '\0'; + return KERN_SUCCESS; +} |