Hello I expreience strange Cygwin behaviour when I try to create a big semaphore set. I wrote a simple test case as following:
$ cat semtest.c #include <sys/sem.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> int main(){ int i, sem_id; scanf("%d", &i); if((sem_id = semget(1000, i, IPC_CREAT | IPC_EXCL)) == -1){ fprintf(stderr, "%d; %s\n", errno, strerror(errno)); exit(1); } if(semctl(sem_id, 0, IPC_RMID) == -1){ fprintf(stderr, "%d; %s\n", errno, strerror(errno)); exit(1); } printf("ok\n"); return 0; } My Cygwin returns: $ echo 59|./semtest ok $ echo 60|./semtest ok $ echo 61|./semtest 22; Invalid argument On my friend's Linux box: $ echo 61|./semtest ok $ echo 250|./semtest ok $ echo 251|./semtest 22; Invalid argument In /usr/include/cygipc/sys one can find #define SEMMSL 32 /* <= 512 max num of semaphores per id */ It's obviously not the case. How can I have Cygwin allowing semaphore set of size 250? Regards Krzysztof Duleba
cygcheck.out
Description: Binary data
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/