#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <iostream>
void* functionC(void*);
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
int counter = 0;
int main()
{
int rc1, rc2;
pthread_t thread1, thread2;
int no=100;
// On success, pthread_create returns 0
if( rc1=pthread_create( &thread1, NULL, &functionC, &no) )
{
printf("Thread creation failed: %d\n", rc1);
}
if( rc2=pthread_create( &thread2, NULL, &functionC, &no) )
{
printf("Thread creation failed: %d\n", rc2);
}
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
return 0;
}
void* functionC(void *n)
{
const int* param = static_cast<int*>(n);
pthread_mutex_lock( &mutex1 );
counter += *param;
printf("Counter value: %d\n",counter);
pthread_mutex_unlock( &mutex1 );
return nullptr;
}