|
@@ -99,7 +99,7 @@ static int test_recv_handle_async(void *arg)
|
|
|
int ret;
|
|
|
struct thread_data *thread_data = (struct thread_data *) arg;
|
|
|
|
|
|
- pthread_mutex_lock(&thread_data->recv_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&thread_data->recv_mutex);
|
|
|
|
|
|
ret = (thread_data->recv_flag == 1);
|
|
|
|
|
@@ -109,7 +109,7 @@ static int test_recv_handle_async(void *arg)
|
|
|
thread_data->val = thread_data->recv_buf;
|
|
|
}
|
|
|
|
|
|
- pthread_mutex_unlock(&thread_data->recv_mutex);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&thread_data->recv_mutex);
|
|
|
|
|
|
if (ret)
|
|
|
{
|
|
@@ -132,11 +132,11 @@ static void recv_handle_async(void *_thread_data)
|
|
|
req->test_arg = thread_data;
|
|
|
req->next = NULL;
|
|
|
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
req->next = data_req_list;
|
|
|
data_req_list = req;
|
|
|
- pthread_cond_signal(&data_req_cond);
|
|
|
- pthread_mutex_unlock(&data_req_mutex);
|
|
|
+ PTHREAD_COND_SIGNAL(&data_req_cond);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&data_req_mutex);
|
|
|
}
|
|
|
|
|
|
static int test_send_handle_async(void *arg)
|
|
@@ -145,9 +145,9 @@ static int test_send_handle_async(void *arg)
|
|
|
struct thread_data *thread_data = (struct thread_data *) arg;
|
|
|
struct thread_data *neighbour_data = thread_data->neighbour;
|
|
|
|
|
|
- pthread_mutex_lock(&neighbour_data->recv_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&neighbour_data->recv_mutex);
|
|
|
ret = (neighbour_data->recv_flag == 0);
|
|
|
- pthread_mutex_unlock(&neighbour_data->recv_mutex);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&neighbour_data->recv_mutex);
|
|
|
|
|
|
if (ret)
|
|
|
{
|
|
@@ -168,35 +168,35 @@ static void send_handle_async(void *_thread_data)
|
|
|
|
|
|
|
|
|
|
|
|
- pthread_mutex_lock(&neighbour_data->recv_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&neighbour_data->recv_mutex);
|
|
|
neighbour_data->recv_buf = thread_data->val;
|
|
|
neighbour_data->recv_flag = 1;
|
|
|
- pthread_mutex_unlock(&neighbour_data->recv_mutex);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&neighbour_data->recv_mutex);
|
|
|
|
|
|
struct data_req *req = (struct data_req *) malloc(sizeof(struct data_req));
|
|
|
req->test_func = test_send_handle_async;
|
|
|
req->test_arg = thread_data;
|
|
|
req->next = NULL;
|
|
|
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
req->next = data_req_list;
|
|
|
data_req_list = req;
|
|
|
- pthread_cond_signal(&data_req_cond);
|
|
|
- pthread_mutex_unlock(&data_req_mutex);
|
|
|
+ PTHREAD_COND_SIGNAL(&data_req_cond);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&data_req_mutex);
|
|
|
}
|
|
|
|
|
|
static void *progress_func(void *arg)
|
|
|
{
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
|
|
|
progress_thread_running = 1;
|
|
|
- pthread_cond_signal(&data_req_cond);
|
|
|
+ PTHREAD_COND_SIGNAL(&data_req_cond);
|
|
|
|
|
|
while (progress_thread_running) {
|
|
|
struct data_req *req;
|
|
|
|
|
|
if (data_req_list == NULL)
|
|
|
- pthread_cond_wait(&data_req_cond, &data_req_mutex);
|
|
|
+ PTHREAD_COND_WAIT(&data_req_cond, &data_req_mutex);
|
|
|
|
|
|
req = data_req_list;
|
|
|
|
|
@@ -205,18 +205,18 @@ static void *progress_func(void *arg)
|
|
|
data_req_list = req->next;
|
|
|
req->next = NULL;
|
|
|
|
|
|
- pthread_mutex_unlock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&data_req_mutex);
|
|
|
|
|
|
int ret = req->test_func(req->test_arg);
|
|
|
|
|
|
if (ret)
|
|
|
{
|
|
|
free(req);
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
}
|
|
|
else {
|
|
|
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
|
|
|
struct data_req *req_aux = data_req_list;
|
|
|
if (!req_aux)
|
|
@@ -239,7 +239,7 @@ static void *progress_func(void *arg)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- pthread_mutex_unlock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&data_req_mutex);
|
|
|
|
|
|
return NULL;
|
|
|
}
|
|
@@ -289,8 +289,8 @@ int main(int argc, char **argv)
|
|
|
|
|
|
|
|
|
pthread_t progress_thread;
|
|
|
- pthread_mutex_init(&data_req_mutex, NULL);
|
|
|
- pthread_cond_init(&data_req_cond, NULL);
|
|
|
+ PTHREAD_MUTEX_INIT(&data_req_mutex, NULL);
|
|
|
+ PTHREAD_COND_INIT(&data_req_cond, NULL);
|
|
|
data_req_list = NULL;
|
|
|
progress_thread_running = 0;
|
|
|
|
|
@@ -299,17 +299,17 @@ int main(int argc, char **argv)
|
|
|
{
|
|
|
problem_data[t].index = t;
|
|
|
problem_data[t].val = 0;
|
|
|
- pthread_mutex_init(&problem_data[t].recv_mutex, NULL);
|
|
|
+ PTHREAD_MUTEX_INIT(&problem_data[t].recv_mutex, NULL);
|
|
|
problem_data[t].recv_flag = 0;
|
|
|
problem_data[t].neighbour = &problem_data[(t+1)%NTHREADS];
|
|
|
}
|
|
|
|
|
|
pthread_create(&progress_thread, NULL, progress_func, NULL);
|
|
|
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
while (!progress_thread_running)
|
|
|
- pthread_cond_wait(&data_req_cond, &data_req_mutex);
|
|
|
- pthread_mutex_unlock(&data_req_mutex);
|
|
|
+ PTHREAD_COND_WAIT(&data_req_cond, &data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&data_req_mutex);
|
|
|
|
|
|
for (t = 0; t < NTHREADS; t++)
|
|
|
{
|
|
@@ -323,10 +323,10 @@ int main(int argc, char **argv)
|
|
|
STARPU_ASSERT(retval == NULL);
|
|
|
}
|
|
|
|
|
|
- pthread_mutex_lock(&data_req_mutex);
|
|
|
+ PTHREAD_MUTEX_LOCK(&data_req_mutex);
|
|
|
progress_thread_running = 0;
|
|
|
- pthread_cond_signal(&data_req_cond);
|
|
|
- pthread_mutex_unlock(&data_req_mutex);
|
|
|
+ PTHREAD_COND_SIGNAL(&data_req_cond);
|
|
|
+ PTHREAD_MUTEX_UNLOCK(&data_req_mutex);
|
|
|
|
|
|
ret = pthread_join(progress_thread, &retval);
|
|
|
STARPU_ASSERT(retval == NULL);
|