Esempio n. 1
0
/* =============================================================================
 * TMlist_free
 * =============================================================================
 */
void
TMlist_free (TM_ARGDECL  list_t* listPtr)
{
    list_node_t* nextPtr = (list_node_t*)TM_SHARED_READ_P(listPtr->head.nextPtr);
    TMfreeList(TM_ARG  nextPtr);
    TM_FREE(listPtr);
}
Esempio n. 2
0
File: list.c Progetto: riclas/rstm
/* =============================================================================
 * list_clear
 * -- Removes all elements
 * =============================================================================
 */
void
TMlist_clear (TM_ARGDECL list_t* listPtr)
{
    TMfreeList(TM_ARG listPtr->head.nextPtr);
    listPtr->head.nextPtr = NULL;
    listPtr->size = 0;
}
Esempio n. 3
0
/* =============================================================================
 * TMlist_free
 * =============================================================================
 */
void
list_stm_v2::TMlist_free (TM_ARGDECL  list_t* listPtr)
{
    list_node_t* nextPtr = (list_node_t*)SLOW_PATH_SHARED_READ_P(listPtr->head.nextPtr);
    TMfreeList(TM_ARG  nextPtr);
    SLOW_PATH_FREE(listPtr);
}
Esempio n. 4
0
/* =============================================================================
 * TMfreeList
 * =============================================================================
 */
static void
TMfreeList (TM_ARGDECL  list_node_t* nodePtr)
{
    if (nodePtr != NULL) {
        list_node_t* nextPtr = (list_node_t*)TM_SHARED_READ_P(nodePtr->nextPtr);
        TMfreeList(TM_ARG  nextPtr);
        TMfreeNode(TM_ARG  nodePtr);
    }
}