|
|
|
|
|
|
|
|
my_start_is_required = 1; |
|
|
my_start_is_required = 1; |
|
|
pthread_cond_signal(&my_cond_start_is_required); |
|
|
pthread_cond_signal(&my_cond_start_is_required); |
|
|
|
|
|
|
|
|
while (!my_command_is_running) { |
|
|
|
|
|
|
|
|
while (my_start_is_required && !my_command_is_running) { |
|
|
if((status = pthread_cond_wait(&my_cond_command_is_running, &my_mutex)) != ENS_OK && errno != EINTR) { |
|
|
if((status = pthread_cond_wait(&my_cond_command_is_running, &my_mutex)) != ENS_OK && errno != EINTR) { |
|
|
pthread_mutex_unlock(&my_mutex); |
|
|
pthread_mutex_unlock(&my_mutex); |
|
|
return status; |
|
|
return status; |
|
|
|
|
|
|
|
|
my_start_is_required = 1; |
|
|
my_start_is_required = 1; |
|
|
pthread_cond_signal(&my_cond_start_is_required); |
|
|
pthread_cond_signal(&my_cond_start_is_required); |
|
|
|
|
|
|
|
|
while (!my_command_is_running) { |
|
|
|
|
|
|
|
|
while (my_start_is_required && !my_command_is_running) { |
|
|
if((status = pthread_cond_wait(&my_cond_command_is_running, &my_mutex)) != ENS_OK && errno != EINTR) { |
|
|
if((status = pthread_cond_wait(&my_cond_command_is_running, &my_mutex)) != ENS_OK && errno != EINTR) { |
|
|
pthread_mutex_unlock(&my_mutex); |
|
|
pthread_mutex_unlock(&my_mutex); |
|
|
return status; |
|
|
return status; |