* 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:
Corinna Vinschen 2004-03-02 11:08:35 +00:00
parent b06a028bf0
commit ddb1a4c10a
2 changed files with 26 additions and 0 deletions

View File

@ -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.

View File

@ -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));