summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sem.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/sem.cc')
-rw-r--r--winsup/cygwin/sem.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/winsup/cygwin/sem.cc b/winsup/cygwin/sem.cc
index a3085d160..dfe28908f 100644
--- a/winsup/cygwin/sem.cc
+++ b/winsup/cygwin/sem.cc
@@ -115,11 +115,14 @@ semctl (int semid, int semnum, int cmd, ...)
{
syscall_printf ("-1 [%d] = semctl ()", request.error_code ());
set_errno (request.error_code ());
+ if (request.error_code () == ENOSYS)
+ raise (SIGSYS);
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
+ raise (SIGSYS);
return -1;
#endif
}
@@ -136,11 +139,14 @@ semget (key_t key, int nsems, int semflg)
{
syscall_printf ("-1 [%d] = semctl ()", request.error_code ());
set_errno (request.error_code ());
+ if (request.error_code () == ENOSYS)
+ raise (SIGSYS);
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
+ raise (SIGSYS);
return -1;
#endif
}
@@ -159,11 +165,14 @@ semop (int semid, struct sembuf *sops, size_t nsops)
{
syscall_printf ("-1 [%d] = semctl ()", request.error_code ());
set_errno (request.error_code ());
+ if (request.error_code () == ENOSYS)
+ raise (SIGSYS);
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
+ raise (SIGSYS);
return -1;
#endif
}