Sponsored Content
Top Forums Programming using signals instead of busy wait Post 302146519 by porter on Wednesday 21st of November 2007 02:48:25 AM
Old 11-21-2007
Quote:
Originally Posted by jut26
I am looking for some examples of c programs which use a signal to notify the program to begin a certain action instead of having it continually loop to check to see if condition is attained
I suggest a program based around select and have a pipe pair dedicated to supporting signals. The write end is written by the signal handle (write a single byte containing the number of the signal) and have the select include the read end of the pipe in the read fd_set.

Then when a signal occurs a single byte is written to the pipe, this wakes up the select, the code in the select loop then reads the pipe and knows which signal occurred and can then handle it in a more graceful manner.
 

5 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

CD Drive is busy

one problem which seems simple but i've faced many times is when i've used cd & want to eject, however i'm not in /dev/cdrom/... in any of my Xterms but it gives the message that the the CD drive is busy. the only thing i could do is /etc/init.d/volmgt stop & eject the CD manually but it doesn't... (6 Replies)
Discussion started by: nikk
6 Replies

2. Shell Programming and Scripting

Need to execute 2 scripts, wait, execute 2 more wait, till end of file

:cool: I need to execute a shell script to do the following: cat a file run two back ground processes using the first two values from the file wait till those background processes finish run two more background processes using the next two values from the file wait till those background... (1 Reply)
Discussion started by: halo98
1 Replies

3. Shell Programming and Scripting

wait command - cat it wait for not-chile process?

Did not use 'wait' yet. How I understand by now the wait works only for child processes, started background. Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?) I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies

4. UNIX for Advanced & Expert Users

Filesystem mystery: disks are not busy on one machine, very busy on a similar box

Hi, We have a filesystem mystery on our hands. Given: 2 machines, A and Aa. Machine Aa is the problem machine. Machine A is running Ubuntu, kernel 2.6.22.9 #1 SMP Wed Feb 20 08:46:16 CST 2008 x86_64 GNU/Linux. Machine Aa is running RHEL5.3, kernel 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38... (2 Replies)
Discussion started by: mschwage
2 Replies

5. Shell Programming and Scripting

calling a shell script in background and wait using "wait" in while loop

Hi, I am facing a strange issue, when i call a script from my while loop in background it doesnt go in background, despite the wait i put below the whil loop it goes forward even before the process put in background is completed. cat abc.txt | while read -u4 line do #if line contains #... (2 Replies)
Discussion started by: mihirvora16
2 Replies
select.h(3HEAD) 						      Headers							   select.h(3HEAD)

NAME
select.h, select - select types SYNOPSIS
#include <sys/select.h> DESCRIPTION
The <sys/select.h> header defines the timeval structure, which includes the following members: time_t tv_sec /* seconds */ suseconds_t tv_usec /* microseconds */ The time_t and suseconds_t types are defined as described in <sys/types.h>. See types.h(3HEAD). The sigset_t type is defined as described in signal.h(3HEAD). The timespec structure is defined as described in <time.h>. See time.h(3HEAD). The <sys/select.h> header defines the fd_set type as a structure. The following is defined as a macro: FD_SETSIZE Maximum number of file descriptors in an fd_set structure. Inclusion of the <sys/select.h> header can make visible all symbols from the headers <signal.h>, <sys/time.h>, and <time.h>. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
select(3C), signal.h(3HEAD), time.h(3HEAD), types.h(3HEAD), attributes(5), standards(5) SunOS 5.10 10 Sep 2004 select.h(3HEAD)
All times are GMT -4. The time now is 03:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy