This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Unsufficient number of semaphores in a set


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

Attachment: 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/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]