current->state = TASK_INTERRUPTIBLE; schedule_timeout(poll_time); 
schedule_timeout_interruptible(poll_time); 
static void ircomm_tty_wait_until_sent(struct tty_struct *tty, int timeout){	struct ircomm_tty_cb *self = (struct ircomm_tty_cb *) tty->driver_data;	unsigned long orig_jiffies, poll_time;	unsigned long flags;		IRDA_DEBUG(2, "%s()\n", __FUNCTION__ );	IRDA_ASSERT(self != NULL, return;);	IRDA_ASSERT(self->magic == IRCOMM_TTY_MAGIC, return;);	orig_jiffies = jiffies;	/* Set poll time to 200 ms */	poll_time = IRDA_MIN(timeout, msecs_to_jiffies(200));	spin_lock_irqsave(&self->spinlock, flags);	while (self->tx_skb && self->tx_skb->len) {		spin_unlock_irqrestore(&self->spinlock, flags);		current->state = TASK_INTERRUPTIBLE;		schedule_timeout(poll_time);		spin_lock_irqsave(&self->spinlock, flags);		if (signal_pending(current))			break;		if (timeout && time_after(jiffies, orig_jiffies + timeout))			break;	}	spin_unlock_irqrestore(&self->spinlock, flags);	current->state = TASK_RUNNING;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/121caf577dc61588c1128821873a08cec48baf58/ircomm_tty.c/clean/net/irda/ircomm/ircomm_tty.c