Changeset df721df in mainline
- Timestamp:
- 2025-01-16T17:34:05Z (28 hours ago)
- Children:
- 455241b
- Parents:
- fa3ed5b
- Location:
- kernel/generic
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/synch/syswaitq.h
rfa3ed5b rdf721df 44 44 extern void sys_waitq_init(void); 45 45 46 extern void sys_waitq_task_cleanup(void);47 48 46 extern sys_errno_t sys_waitq_create(uspace_ptr_cap_waitq_handle_t); 49 47 extern sys_errno_t sys_waitq_sleep(cap_waitq_handle_t, uint32_t, unsigned int); -
kernel/generic/src/proc/thread.c
rfa3ed5b rdf721df 444 444 */ 445 445 ipc_cleanup(); 446 sys_waitq_task_cleanup();447 446 caps_task_clear(TASK); 448 447 LOG("Cleanup of task %" PRIu64 " completed.", TASK->taskid); -
kernel/generic/src/synch/syswaitq.c
rfa3ed5b rdf721df 58 58 }; 59 59 60 static bool waitq_cap_cleanup_cb(cap_t *cap, void *arg)61 {62 kobject_t *kobj = cap_unpublish(cap->task, cap->handle,63 KOBJECT_TYPE_WAITQ);64 kobject_put(kobj);65 cap_free(cap->task, cap->handle);66 return true;67 }68 69 60 /** Initialize the user waitq subsystem */ 70 61 void sys_waitq_init(void) … … 72 63 waitq_cache = slab_cache_create("waitq_t", sizeof(waitq_t), 0, NULL, 73 64 NULL, 0); 74 }75 76 /** Clean-up all waitq capabilities held by the exiting task */77 void sys_waitq_task_cleanup(void)78 {79 caps_apply_to_kobject_type(TASK, KOBJECT_TYPE_WAITQ,80 waitq_cap_cleanup_cb, NULL);81 65 } 82 66
Note:
See TracChangeset
for help on using the changeset viewer.