|
From: <sv...@va...> - 2011-03-05 14:49:29
|
Author: bart
Date: 2011-03-05 14:49:12 +0000 (Sat, 05 Mar 2011)
New Revision: 11590
Log:
DRD tests, Darwin: check return value of sem_open().
Modified:
trunk/drd/tests/circular_buffer.c
trunk/drd/tests/pth_inconsistent_cond_wait.c
trunk/drd/tests/sem_open.c
Modified: trunk/drd/tests/circular_buffer.c
===================================================================
--- trunk/drd/tests/circular_buffer.c 2011-03-05 14:11:40 UTC (rev 11589)
+++ trunk/drd/tests/circular_buffer.c 2011-03-05 14:49:12 UTC (rev 11590)
@@ -60,7 +60,13 @@
static sem_t* create_semaphore(const char* const name, const int value)
{
#ifdef VGO_darwin
- sem_t* p = sem_open(name, O_CREAT, 0600, value);
+ char name_and_pid[32];
+ snprintf(name_and_pid, sizeof(name_and_pid), "%s-%d", name, getpid());
+ sem_t* p = sem_open(name_and_pid, O_CREAT | O_EXCL, 0600, value);
+ if (p == SEM_FAILED) {
+ perror("sem_open");
+ return NULL;
+ }
return p;
#else
sem_t* p = malloc(sizeof(*p));
Modified: trunk/drd/tests/pth_inconsistent_cond_wait.c
===================================================================
--- trunk/drd/tests/pth_inconsistent_cond_wait.c 2011-03-05 14:11:40 UTC (rev 11589)
+++ trunk/drd/tests/pth_inconsistent_cond_wait.c 2011-03-05 14:49:12 UTC (rev 11590)
@@ -45,7 +45,13 @@
static sem_t* create_semaphore(const char* const name)
{
#ifdef VGO_darwin
- sem_t* p = sem_open(name, O_CREAT, 0600, 0);
+ char name_and_pid[32];
+ snprintf(name_and_pid, sizeof(name_and_pid), "%s-%d", name, getpid());
+ sem_t* p = sem_open(name_and_pid, O_CREAT | O_EXCL, 0600, 0);
+ if (p == SEM_FAILED) {
+ perror("sem_open");
+ return NULL;
+ }
return p;
#else
sem_t* p = malloc(sizeof(*p));
Modified: trunk/drd/tests/sem_open.c
===================================================================
--- trunk/drd/tests/sem_open.c 2011-03-05 14:11:40 UTC (rev 11589)
+++ trunk/drd/tests/sem_open.c 2011-03-05 14:49:12 UTC (rev 11590)
@@ -58,8 +58,9 @@
* Use the ipcs and ipcrm commands to clean up named semaphores left by
* aborted instances of this process.
*/
- snprintf(semaphore_name, sizeof(semaphore_name), "drd-sem-open-test");
- s_sem = sem_open(semaphore_name, O_CREAT, 0600, 1);
+ snprintf(semaphore_name, sizeof(semaphore_name), "drd-sem-open-test-%d",
+ getpid());
+ s_sem = sem_open(semaphore_name, O_CREAT | O_EXCL, 0600, 1);
if (s_sem == SEM_FAILED)
{
fprintf(stderr, "Failed to create a semaphore with name %s\n",
|