Question: . Many current language specifications, such as for C and C + + , are inadequate for multithreaded programs. This can have an impact on

. 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 program illustrates. Consider the following declarations and function definition:
#include
#include
#include
#include
int global_positives =0;
typedef struct list { struct list *next; double val;
}* list;
void *count_positives(struct list *l){ struct list *p;
for(p = l; p->next ; p = p -> next)
{
if (p -> val >0.0)
++global_positives;
}
}
Now consider the case in which thread A performs.
count_posivites();
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?

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!