mirror of
https://git.openafs.org/openafs.git
synced 2025-01-22 08:50:17 +00:00
linux-note-we-use-interruptible-sleeps-in-non-compliant-manner-20020731
based on discussion with David Howells of RedHat
This commit is contained in:
parent
6c9fd25ae7
commit
f063c0db21
@ -203,7 +203,13 @@ int afs_osi_SleepSig(char *event)
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* afs_osi_Sleep -- waits for an event to be notified, ignoring signals. */
|
||||
/* afs_osi_Sleep -- waits for an event to be notified, ignoring signals.
|
||||
* - NOTE: that on Linux, there are circumstances in which TASK_INTERRUPTIBLE
|
||||
* can wake up, even if all signals are blocked
|
||||
* - TODO: handle signals correctly by passing an indication back to the
|
||||
* caller that the wait has been interrupted and the stack should be cleaned
|
||||
* up preparatory to signal delivery
|
||||
*/
|
||||
void afs_osi_Sleep(char *event)
|
||||
{
|
||||
sigset_t saved_set;
|
||||
|
@ -59,11 +59,13 @@ void afs_mutex_exit(afs_kmutex_t *l)
|
||||
up(&l->sem);
|
||||
}
|
||||
|
||||
/*
|
||||
* CV_WAIT and CV_TIMEDWAIT rely on the fact that the Linux kernel has
|
||||
* a global lock. Thus we can safely drop our locks before calling the
|
||||
* kernel sleep services.
|
||||
* Or not.
|
||||
/* CV_WAIT and CV_TIMEDWAIT sleep until the specified event occurs, or, in the
|
||||
* case of CV_TIMEDWAIT, until the specified timeout occurs.
|
||||
* - NOTE: that on Linux, there are circumstances in which TASK_INTERRUPTIBLE
|
||||
* can wake up, even if all signals are blocked
|
||||
* - TODO: handle signals correctly by passing an indication back to the
|
||||
* caller that the wait has been interrupted and the stack should be cleaned
|
||||
* up preparatory to signal delivery
|
||||
*/
|
||||
int afs_cv_wait(afs_kcondvar_t *cv, afs_kmutex_t *l, int sigok)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user