04-22-2004
sigwait system call in UNIX signal
Hi Everybody,
I have gone through man of sigwait and new to UNIX signals. Could anyone explain me about the following lines mentioned in sigwait man help ?
"The selection of a signal in set is independent of the signal
mask of the calling thread or LWP. This means a thread or
LWP can synchronously wait for signals that are being
blocked by the signal mask of the calling thread or LWP."
What is the difference between sigsuspend and sigwait system call as both system call blocks the process till the signal arrives ?
Regards
Dinesh
10 More Discussions You Might Find Interesting
1. IP Networking
hi
is there any system call by which ip routing table can be accessed. (1 Reply)
Discussion started by: vinodkumar
1 Replies
2. UNIX for Advanced & Expert Users
Hi,
Ho do I differentiate system call from library call?
for example if I am using chmod , how do I find out if it is a system call or library call?
Thanks
Muru (2 Replies)
Discussion started by: muru
2 Replies
3. UNIX for Dummies Questions & Answers
Hell Sir,
This is chanikya
Is there any System call which behaves just like fork but i dont want to return back two times to the calling func.
In the following ex iam creating a child process in the called func but the ex prints two times IN MAIN.
ex :-
calling()
{
fork();
}
... (2 Replies)
Discussion started by: chanikya
2 Replies
4. Programming
Hi,
I have a daq program that runs in an infinite loop until it receives SIGINT. A handler catches the signal and sets a flag to stop the while loop. After the loop some things have to be cleaned up.
The problem is that I want my main while loop to wait until the next full second begins, to... (2 Replies)
Discussion started by: soeckel
2 Replies
5. Programming
#include <pthread.h>
#include <signal.h>
...
sigset_t mask;
int err,signo;
err=sigwait(&mask,&signo);
switch(signo){
case SIGINT:
...
}
when I compile above code under solaris 10,it raise following error:
error: too many arguments to function 'sigwait'
I look up signal... (4 Replies)
Discussion started by: konvalo
4 Replies
6. Programming
I have a cgi script which is called after certain time interval, which has this:
system ("ls -l /tmp/cgic* | grep -v \"cgicsave.env\" | awk '{print $5}'");
During the execution of this script,the output is 0 sometimes. But due to this the system call is not working at all and doesnt o/p... (2 Replies)
Discussion started by: xs2punit
2 Replies
7. Programming
After an extensive search, I haven't found a definitive answer to my question. "And what is your question you frackking noob", you may ask. Ok, here goes: When using sigwait to wait for SIGUSR1 or SIGUSR2, can you have it trigger a signal handler? The following code did NOT, and the example I got... (2 Replies)
Discussion started by: bcfd36
2 Replies
8. Programming
Hi,
The UNIX system call inside the COBOL program is doing
the specified command correctly.
MOVE W080-UNZIP-FILE-COMMAND TO W080-OUTPUT-COMMAND
CALL "SYSTEM" USING W080-OUTPUT-COMMAND
RETURNING W080-SYS-CALL-STATUS
BUT The problem is, the following keeps on showing on the log file... (2 Replies)
Discussion started by: joyAV
2 Replies
9. AIX
Hi,
I am running a remote shell from site A to site B, where both are AIX. The remote shell starts other application, and when it finishes, it returns to the site A.
The problem is that I am receiving an error signal 11 and system core error 50 - segmentation fault.
Does anyone know if there are... (6 Replies)
Discussion started by: brjohnsmith
6 Replies
10. Programming
Hi @ll :)
I have a problem with my code but first a short description:
1. I have one signal call SIGUSR1
2. In the signal I try to use nanosleep and now:
When I put kill -SIGUSR1 pid --> sometimes works fine, sometimes returns me an error with ,,Interrupt system call", sometimes I got... (5 Replies)
Discussion started by: mattdj
5 Replies
LEARN ABOUT FREEBSD
sigwait
SIGWAIT(2) BSD System Calls Manual SIGWAIT(2)
NAME
sigwait -- select a set of signals
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <signal.h>
int
sigwait(const sigset_t * restrict set, int * restrict sig);
DESCRIPTION
The sigwait() system call selects a set of signals, specified by set. If none of the selected signals are pending, sigwait() waits until one
or more of the selected signals has been generated. Then sigwait() atomically clears one of the selected signals from the set of pending
signals (for the process or for the current thread) and sets the location pointed to by sig to the signal number that was cleared.
The signals specified by set should be blocked at the time of the call to sigwait().
If more than one thread is using sigwait() to wait for the same signal, no more than one of these threads will return from sigwait() with the
signal number. If more than a single thread is blocked in sigwait() for a signal when that signal is generated for the process, it is
unspecified which of the waiting threads returns from sigwait(). If the signal is generated for a specific thread, as by pthread_kill(),
only that thread will return.
Should any of the multiple pending signals in the range SIGRTMIN to SIGRTMAX be selected, it will be the lowest numbered one. The selection
order between realtime and non-realtime signals, or between multiple pending non-realtime signals, is unspecified.
IMPLEMENTATION NOTES
The sigwait() function is implemented as a wrapper around the __sys_sigwait() system call, which retries the call on EINTR error.
RETURN VALUES
If successful, sigwait() returns 0 and sets the location pointed to by sig to the cleared signal number. Otherwise, an error number is
returned.
ERRORS
The sigwait() system call will fail if:
[EINVAL] The set argument specifies one or more invalid signal numbers.
SEE ALSO
sigaction(2), sigpending(2), sigqueue(2), sigsuspend(2), sigtimedwait(2), sigwaitinfo(2), pause(3), pthread_sigmask(3)
STANDARDS
The sigwait() function conforms to ISO/IEC 9945-1:1996 (``POSIX.1'').
BSD
September 6, 2013 BSD