Sponsored Content
Full Discussion: Sleep() not working
Top Forums Programming Sleep() not working Post 302119349 by Perderabo on Tuesday 29th of May 2007 11:11:10 AM
Old 05-29-2007
sleep in implemented with signals and now you are trying to nest handlers. Go back to your other thread and look at porter's comments about too much code in a handler. Reduce to quiter function to just setting a flag and it will work.
 

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sleep

what is the purpose of the sleep command? (5 Replies)
Discussion started by: Anna
5 Replies

2. Shell Programming and Scripting

Sleep under one second

If I want a script to sleep for less than a second, would I use a decimal? In other words, if I wanted my script to sleep for 1/4 of a second, would I say, SLEEP .25 ?? (5 Replies)
Discussion started by: Scoogie
5 Replies

3. UNIX for Dummies Questions & Answers

Sleep less than 1 second

Does anyone know a way to sleep less than 1 second? Sometimes when I write scripts that iterates a loop many times it would be nice to slow things down, but sometimes 1 second is too much. (9 Replies)
Discussion started by: bjorno
9 Replies

4. UNIX for Advanced & Expert Users

sleep working

unistd.h declares the prototype of the sleep function. where is the sleep function actually defined? where is the control transfered when we include a sleep call in it?? (2 Replies)
Discussion started by: meetbhattu
2 Replies

5. Shell Programming and Scripting

Wrapping 'sleep' with my 'resleep' function (Resettable sleep)

This is a very crude attempt in Bash at something that I needed but didn't seem to find in the 'sleep' command. However, I would like to be able to do it without the need for the temp file. Please go easy on me if this is already possible in some other way: How many times have you used the... (5 Replies)
Discussion started by: deckard
5 Replies

6. UNIX for Dummies Questions & Answers

Help with sleep command

sleep 10 & Is this the write line of command to suspend 5 jobs for 10 minutes (6 Replies)
Discussion started by: senyor17
6 Replies

7. Shell Programming and Scripting

Sleep while i > 0

Hi, I have a script that runs a process at the beginning and I want to sleep/wait until this process is finished and then continue with the rest of the script. I am trying with this, but it is not working: process=`ps -ef | grep "proc_p01 -c" | grep -v grep | wc -l` if ; do sleep 10 done... (7 Replies)
Discussion started by: apenkov
7 Replies
PTHREAD_SIGNAL(3)					     Library Functions Manual						 PTHREAD_SIGNAL(3)

NAME
pthread_sigmask, pthread_kill, sigwait - handling of signals in threads SYNOPSIS
#include <pthread.h> #include <signal.h> int pthread_sigmask(int how, const sigset_t *newmask, sigset_t *oldmask); int pthread_kill(pthread_t thread, int signo); int sigwait(const sigset_t *set, int *sig); DESCRIPTION
pthread_sigmask changes the signal mask for the calling thread as described by the how and newmask arguments. If oldmask is not NULL, the previous signal mask is stored in the location pointed to by oldmask. The meaning of the how and newmask arguments is the same as for sigprocmask(2). If how is SIG_SETMASK, the signal mask is set to newmask. If how is SIG_BLOCK, the signals specified to newmask are added to the current signal mask. If how is SIG_UNBLOCK, the signals specified to newmask are removed from the current signal mask. Recall that signal masks are set on a per-thread basis, but signal actions and signal handlers, as set with sigaction(2), are shared between all threads. pthread_kill send signal number signo to the thread thread. The signal is delivered and handled as described in kill(2). sigwait suspends the calling thread until one of the signals in set is delivered to the calling thread. It then stores the number of the signal received in the location pointed to by sig and returns. The signals in set must be blocked and not ignored on entrance to sigwait. If the delivered signal has a signal handler function attached, that function is not called. CANCELLATION
sigwait is a cancellation point. RETURN VALUE
On success, 0 is returned. On failure, a non-zero error code is returned. ERRORS
The pthread_sigmask function returns the following error codes on error: EINVAL how is not one of SIG_SETMASK, SIG_BLOCK, or SIG_UNBLOCK EFAULT newmask or oldmask point to invalid addresses The pthread_kill function returns the following error codes on error: EINVAL signo is not a valid signal number ESRCH the thread thread does not exist (e.g. it has already terminated) The sigwait function never returns an error. AUTHOR
Xavier Leroy <Xavier.Leroy@inria.fr> SEE ALSO
sigprocmask(2), kill(2), sigaction(2), sigsuspend(2). NOTES
For sigwait to work reliably, the signals being waited for must be blocked in all threads, not only in the calling thread, since otherwise the POSIX semantics for signal delivery do not guarantee that it's the thread doing the sigwait that will receive the signal. The best way to achieve this is block those signals before any threads are created, and never unblock them in the program other than by calling sigwait. BUGS
Signal handling in LinuxThreads departs significantly from the POSIX standard. According to the standard, ``asynchronous'' (external) sig- nals are addressed to the whole process (the collection of all threads), which then delivers them to one particular thread. The thread that actually receives the signal is any thread that does not currently block the signal. In LinuxThreads, each thread is actually a kernel process with its own PID, so external signals are always directed to one particular thread. If, for instance, another thread is blocked in sigwait on that signal, it will not be restarted. The LinuxThreads implementation of sigwait installs dummy signal handlers for the signals in set for the duration of the wait. Since signal handlers are shared between all threads, other threads must not attach their own signal handlers to these signals, or alternatively they should all block these signals (which is recommended anyway -- see the Notes section). LinuxThreads PTHREAD_SIGNAL(3)
All times are GMT -4. The time now is 07:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy