+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>
* bsd_mutex.cc (win_priority): Move to msleep helper function section.
suptr = *supptr;
if (suptr == NULL) {
SLIST_FOREACH(suptr, &semu_list, un_next) {
+#ifdef __CYGWIN__
+ if (suptr->un_proc->cygpid == p->cygpid) {
+#else
if (suptr->un_proc == p) {
+#endif
*supptr = suptr;
break;
}
*/
SEMUNDO_HOOKLOCK();
SLIST_FOREACH_PREVPTR(suptr, supptr, &semu_list, un_next) {
+#ifdef __CYGWIN__
+ if (suptr->un_proc->cygpid == p->cygpid)
+#else
if (suptr->un_proc == p)
+#endif
break;
}
SEMUNDO_UNLOCK();
if (suptr == NULL)
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,
suptr->un_cnt));
+#endif
/*
* If there are any active undo elements then process them.
panic("semexit - semnum out of range");
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",
suptr->un_proc, suptr->un_ent[ix].un_id,
+#endif
suptr->un_ent[ix].un_num,
suptr->un_ent[ix].un_adjval,
semaptr->sem_base[semnum].semval));