* sysv_sem.cc (semundo_adjust): Check for process id instead of
process struct pointer, which isn't fixed under Cygwin. (semexit_myhook): Ditto. Adjust debug print statements to print Cygwin and Windows PIDs instead of process pointer under Cygwin.
This commit is contained in:
parent
b06a028bf0
commit
ddb1a4c10a
@ -1,3 +1,10 @@
|
|||||||
|
2004-03-02 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* sysv_sem.cc (semundo_adjust): Check for process id instead of
|
||||||
|
process struct pointer, which isn't fixed under Cygwin.
|
||||||
|
(semexit_myhook): Ditto. Adjust debug print statements to print
|
||||||
|
Cygwin and Windows PIDs instead of process pointer under Cygwin.
|
||||||
|
|
||||||
2004-02-07 Corinna Vinschen <corinna@vinschen.de>
|
2004-02-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* bsd_mutex.cc (win_priority): Move to msleep helper function section.
|
* bsd_mutex.cc (win_priority): Move to msleep helper function section.
|
||||||
|
@ -419,7 +419,11 @@ semundo_adjust(struct thread *td, struct sem_undo **supptr, int semid,
|
|||||||
suptr = *supptr;
|
suptr = *supptr;
|
||||||
if (suptr == NULL) {
|
if (suptr == NULL) {
|
||||||
SLIST_FOREACH(suptr, &semu_list, un_next) {
|
SLIST_FOREACH(suptr, &semu_list, un_next) {
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
if (suptr->un_proc->cygpid == p->cygpid) {
|
||||||
|
#else
|
||||||
if (suptr->un_proc == p) {
|
if (suptr->un_proc == p) {
|
||||||
|
#endif
|
||||||
*supptr = suptr;
|
*supptr = suptr;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1244,7 +1248,11 @@ semexit_myhook(void *arg, struct proc *p)
|
|||||||
*/
|
*/
|
||||||
SEMUNDO_HOOKLOCK();
|
SEMUNDO_HOOKLOCK();
|
||||||
SLIST_FOREACH_PREVPTR(suptr, supptr, &semu_list, un_next) {
|
SLIST_FOREACH_PREVPTR(suptr, supptr, &semu_list, un_next) {
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
if (suptr->un_proc->cygpid == p->cygpid)
|
||||||
|
#else
|
||||||
if (suptr->un_proc == p)
|
if (suptr->un_proc == p)
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SEMUNDO_UNLOCK();
|
SEMUNDO_UNLOCK();
|
||||||
@ -1252,8 +1260,13 @@ semexit_myhook(void *arg, struct proc *p)
|
|||||||
if (suptr == NULL)
|
if (suptr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
DPRINTF(("proc @%u(%u) has undo structure with %d entries\n",
|
||||||
|
p->cygpid, p->winpid, suptr->un_cnt));
|
||||||
|
#else
|
||||||
DPRINTF(("proc @%08x has undo structure with %d entries\n", p,
|
DPRINTF(("proc @%08x has undo structure with %d entries\n", p,
|
||||||
suptr->un_cnt));
|
suptr->un_cnt));
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there are any active undo elements then process them.
|
* If there are any active undo elements then process them.
|
||||||
@ -1282,8 +1295,14 @@ semexit_myhook(void *arg, struct proc *p)
|
|||||||
panic("semexit - semnum out of range");
|
panic("semexit - semnum out of range");
|
||||||
|
|
||||||
DPRINTF((
|
DPRINTF((
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
"semexit: %u(%u) id=%d num=%d(adj=%d) ; sem=%d\n",
|
||||||
|
suptr->un_proc->cygpid, suptr->un_proc->winpid,
|
||||||
|
suptr->un_ent[ix].un_id,
|
||||||
|
#else
|
||||||
"semexit: %08x id=%d num=%d(adj=%d) ; sem=%d\n",
|
"semexit: %08x id=%d num=%d(adj=%d) ; sem=%d\n",
|
||||||
suptr->un_proc, suptr->un_ent[ix].un_id,
|
suptr->un_proc, suptr->un_ent[ix].un_id,
|
||||||
|
#endif
|
||||||
suptr->un_ent[ix].un_num,
|
suptr->un_ent[ix].un_num,
|
||||||
suptr->un_ent[ix].un_adjval,
|
suptr->un_ent[ix].un_adjval,
|
||||||
semaptr->sem_base[semnum].semval));
|
semaptr->sem_base[semnum].semval));
|
||||||
|
Loading…
Reference in New Issue
Block a user