Semaphore problem....


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Semaphore problem....
# 1  
Old 05-28-2008
Semaphore problem....

I'm having an issue implementing my semaphores....

The following is how I'm setting up the semaphore.

First: I get the semkey (which I've wrapped in an IF statement using perror() but in an attempt to keep the code clutter free I've removed it here)

semkey = ftok("./request", 'S' )

Second: I get the semid (again wrapped in an IF statement )

semid = semget ( semkey, 1, 0666 | IPC_CREAT )

Third: I initialise semaphore #0 to 1

arg.val = 1
semctl ( semid, 0, SETVAL, arg )


The following is where the problem is occuring (it seems), this is where I'm actually using the semaphore - semop() - to allow access to a shared memory segment (critical code)

while ( allocate.sem_op == -1 )
{
//printf ( "waiting for semaphore to release\n" );
}

allocate.sem_op = -1;
if ( semop( semid, &allocate, 1 ) == -1 )
{
perror ("Semaphore error3: semop()");
exit(1);
}


//CRITICAL CODE HERE


allocate.sem_op = 1;
if ( semop( semid, &allocate, 1 ) == -1 )
{
perror ("Semaphore error4: semop()");
exit(1);
}



I've left a fair bit of the code out, such as struct sembuf and union semun stuff, but that appears to be working properly.....

The error I'm getting is this:

Semaphore error4: semop(): File too large


Where should I look or what is it that I'm doing wrong?
# 2  
Old 05-29-2008
Wrong subforum - should be moved to
High Level Programming - The UNIX Forums
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Semaphore

I was asked to add this piece of code to a c program which I will execute through the shell: for(long i = 0; i < NITER; i++) { sem_wait( &sema); count++; sem_post( &sema); } I didn't get it, which is the critical section ? if it's "count++" how would a thread wake up in order to enter it... (1 Reply)
Discussion started by: uniran
1 Replies

2. Programming

Semaphore

If I create a semaphore and then I fork a number of child processes then all the child process use that same semaphore. Since the process address spaces are different rfom each other then how all the child process are able to access the same semaphore? I understand that semaphore/mutex is at os... (0 Replies)
Discussion started by: rupeshkp728
0 Replies

3. Programming

Single Semaphore problem???

Hi friends, I have this very famous Operating System book titiled, "Operating System Concepts" by Abaraham Silbertschatz 7th edition. Regarding the semaphores, here is a paragraph from the book which says, We can also use semaphores to solve various synchronization problems. For example,... (1 Reply)
Discussion started by: gabam
1 Replies

4. Programming

semaphore problem???

Hi friends, I want to print the the following sequence of numbers using sempahores. 2 3 2 3 2 3 2 3 But something seems to be wrong regarding my concept of semaphores, I am using a single function, a single semaphore, and two threads, but I am not succeeding to achieve my goal, it prints as... (1 Reply)
Discussion started by: gabam
1 Replies

5. Shell Programming and Scripting

semaphore

Control two exclusively shared resources(semaphore). The two resources are two files. The producer will write even numbers to one file, and odd numbers to another one. The consumer respectively reads from each file until it gets 5 even numbers and 5 odd numbers. Can any one help me with the... (0 Replies)
Discussion started by: gokult
0 Replies

6. UNIX for Dummies Questions & Answers

semaphore

what is semaphore? can any body explain it in a more simple way than the manual ?? replies appreciated Regards raguram R (7 Replies)
Discussion started by: raguramtgr
7 Replies

7. Shell Programming and Scripting

Semaphore

Hi, I am looking to use a semaphore for the first time in one of my scripts. I am just wondering if there are any simple examples or tutorials around? I am a beginner so the simpler the better :) Thanks -Jaken (2 Replies)
Discussion started by: Jaken
2 Replies

8. Programming

Problem with releasing semaphore lock

Hi, I am trying to write stuff to a shared memory using a writer, and reading the corresponding stuff using a reader. I am facing problems while releasing the lock, as a result of which I am having segmentation faults. The code is as follows... /********** writer.c ***********/ ... (1 Reply)
Discussion started by: jacques83
1 Replies

9. UNIX for Dummies Questions & Answers

Semaphore

Hi, I'm new to UNIX. I need to know what's a semaphore Do reply. Thanks VJ (3 Replies)
Discussion started by: vjsony
3 Replies

10. UNIX for Dummies Questions & Answers

semaphore

hi, is there any command where we can monitor semaphores? (1 Reply)
Discussion started by: yls177
1 Replies
Login or Register to Ask a Question