Many current language specifications, such as for C and C++, are inadequate for multithreaded programs. This can

Question:

Many current language specifications, such as for C and C++, are inadequate for multithreaded programs. This can have an impact on compilers and the correctness of code, as this problem illustrates. Consider the following declarations and function definition:

int global_positives = 0;

typedef struct list {

struct list *next;

double val;

} * list;

void count_positives(list l)

{

list p;

for (p = l; p; p = p -> next)

if (p -> val > 0.0)

++global_positives;

}

Now consider the case in which thread A performs

count_positives();

While thread B performs

++global_positives;

a. What does the function do?

b. The C language only addresses single-threaded execution. Does the use of two parallel threads create any problems or potential problems?

Fantastic news! We've Found the answer you've been seeking!

Step by Step Answer:

Related Book For  book-img-for-question
Question Posted: