--- dazuko-2.1.0-pre7/dazuko_linux26.c.org 2005-07-27 00:36:44.000000000 +0300 +++ dazuko-2.1.0-pre7/dazuko_linux26.c 2005-07-27 00:37:49.000000000 +0300 @@ -152,14 +152,21 @@ inline int xp_wait_until_condition(struc if (allow_interrupt) { - return wait_event_interruptible(queue->queue, cfunction(cparam) != 0); + wait_event_interruptible(queue->queue, cfunction(cparam) != 0); } else { wait_event(queue->queue, cfunction(cparam) != 0); } - return 0; +#ifdef PF_FREEZE + if (current->flags & PF_FREEZE) + refrigerator(PF_FREEZE); +#else + try_to_freeze(); +#endif + + return signal_pending(current); } inline int xp_notify(struct xp_queue *queue)