Group of answer choices   A. list_t is already thread-safe and does not need any locks in any of its operations.   B. Add a lock to the list_t struct, initialize the lock in the List_Init, and then any operation that involves a list_t, lock and unlock the entire function to ensure we do not have any data races.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Given the following code, how would you make it thread-safe?

 

// basic node structure
typedef struct __node_t {
    int key;
    struct __node_t *next;
} node_t;

// basic list structure (one used per list)
typedef struct __list_t {
    node_t *head;

} list_t;

void List_Init(list_t *L) {
    L->head = NULL;
    
}

int List_Insert(list_t *L, int key) {

    node_t *new = malloc(sizeof(node_t));

    if (new == NULL) {
        perror("malloc");
        return -1; // fail
    }

    new->key = key;
    new->next = L->head;
    L->head = new;
    
    return 0; // success
  }

int List_Lookup(list_t *L, int key) {
    node_t *curr = L->head;
    while (curr) {
        if (curr->key == key) {
            return 0; // success
        }
    curr = curr->next;
    }

}

Group of answer choices
 
A. list_t is already thread-safe and does not need any locks in any of its operations.
 
B. Add a lock to the list_t struct, initialize the lock in the List_Init, and then any operation that involves a list_t, lock and unlock the entire function to ensure we do not have any data races.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Operations of Linked List
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education