MCPcopy Index your code
hub / github.com/RT-Thread/rt-thread / lwp_user_object_add

Function lwp_user_object_add

components/lwp/lwp_pid.c:456–479  ·  view source on GitHub ↗

* @brief Add an object to the user object list of a lightweight process * * @param[in,out] lwp The lightweight process structure whose object list needs updating * @param[in] object The object to be added to the LWP's object list * * @return int Returns 0 on success, or -1 on failure */

Source from the content-addressed store, hash-verified

454 * @return int Returns 0 on success, or -1 on failure
455 */
456int lwp_user_object_add(struct rt_lwp *lwp, rt_object_t object)
457{
458 int ret = -1;
459
460 if (lwp && object)
461 {
462 lwp_user_object_lock(lwp);
463 if (!lwp_avl_find((avl_key_t)object, lwp->object_root))
464 {
465 struct lwp_avl_struct *node;
466
467 node = (struct lwp_avl_struct *)rt_malloc(sizeof(struct lwp_avl_struct));
468 if (node)
469 {
470 rt_atomic_add(&object->lwp_ref_count, 1);
471 node->avl_key = (avl_key_t)object;
472 lwp_avl_insert(node, &lwp->object_root);
473 ret = 0;
474 }
475 }
476 lwp_user_object_unlock(lwp);
477 }
478 return ret;
479}
480
481/**
482 * @brief Delete a node from the user object list of a lightweight process

Callers 8

_object_dupFunction · 0.85
_pftx_create_lockedFunction · 0.85
sys_sem_createFunction · 0.85
sys_mutex_createFunction · 0.85
sys_event_createFunction · 0.85
sys_mb_createFunction · 0.85
sys_mq_createFunction · 0.85
sys_rt_timer_createFunction · 0.85

Calls 5

lwp_user_object_lockFunction · 0.85
lwp_avl_findFunction · 0.85
rt_mallocFunction · 0.85
lwp_avl_insertFunction · 0.85
lwp_user_object_unlockFunction · 0.85

Tested by

no test coverage detected