Sponsored Content
Full Discussion: Semaphore
Top Forums Programming Semaphore Post 302407340 by italian_boy on Thursday 25th of March 2010 06:52:12 AM
Old 03-25-2010
Semaphore

In my server code there is a thread per client...
The server call accept() and after that start the thread.
So there is a thread for client that save in RAM the client's message, that will be send to other clients.
Now in RAM I have created a shared memory in which thread read and write(save) client's message :

server.c

Code:
Code:
socket()
bind()
..
...
...int shmid;
    key_t key;
    char *shm, *s;

    key = 5678;

    if ((shmid = shmget(key, 10000, IPC_CREAT | 0666)) < 0) {
        perror("shmget");
        exit(1);
    }

    if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) {
        perror("shmat");
        exit(1);
    }
   int *mem=mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, shmid, 0);
     ftruncate(shmid, 4096); 

while(1){
...
...
...
}

Now I must synchronized the threads by semaphore to read and write into shared memory.Like this : all thread can read, but when a thread write other thread can't do anything , only WAIT that the writing thread signals it has finished. I don't know how can I do... Can someone help me with some example? how can I manage a semaphore??
Thank you very much!

Last edited by pludi; 03-25-2010 at 07:57 AM.. Reason: code tags, please...
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

semaphore

hi, is there any command where we can monitor semaphores? (1 Reply)
Discussion started by: yls177
1 Replies

2. 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

3. Programming

Semaphore debugging

I'm running one multithreaded application, in that one of my thread is waiting infinitely in a semphore. Is there a way to determine, in which semaphore the particular thread is waiting and which thread(s) is holding the semaphore. (5 Replies)
Discussion started by: ptprabu
5 Replies

4. UNIX for Advanced & Expert Users

semaphore concept

Hi All, I am going through the semaphore concept and have a doubt regarding the same and hope to get a resolution here. I have a file which has a number of records. I want to write an application (in C) which will be able to do concurrent read/write on these records. Of what I have... (8 Replies)
Discussion started by: maverix
8 Replies

5. 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

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

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

8. 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

9. Solaris

Semaphore

Can anyone tell me abt the Semaphore concept and what is semaphore??? is semaphore id is associated in terms as in resources like semaphore id 1 indicates cpu share unit is given and semaphore id 2 will indicate abt the memore or semaphore id 3 will tell us the i/o components (1 Reply)
Discussion started by: aarjun07
1 Replies

10. 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
bup-server(1)						      General Commands Manual						     bup-server(1)

NAME
bup-server - the server side of the bup client-server relationship SYNOPSIS
bup server DESCRIPTION
bup server is the server side of a remote bup session. If you use bup-split(1) or bup-save(1) with the -r option, they will ssh to the remote server and run bup server to receive the transmitted objects. There is normally no reason to run bup server yourself. MODES
smart In this mode, the server checks each incoming object against the idx files in its repository. If any object already exists, it tells the client about the idx file it was found in, allowing the client to download that idx and avoid sending duplicate data. This is bup-server's default mode. dumb In this mode, the server will not check its local index before writing an object. To avoid writing duplicate objects, the server will tell the client to download all of its .idx files at the start of the session. This mode is useful on low powered server hard- ware (ie router/slow NAS). FILES
$BUP_DIR/bup-dumb-server Activate dumb server mode, as discussed above. This file is not created by default in new repositories. SEE ALSO
bup-save(1), bup-split(1) BUP
Part of the bup(1) suite. AUTHORS
Avery Pennarun <apenwarr@gmail.com>. Bup unknown- bup-server(1)
All times are GMT -4. The time now is 07:34 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy