while (1) { 
do { 
int sk_stream_wait_connect(struct sock *sk, long *timeo_p){	struct task_struct *tsk = current;	DEFINE_WAIT(wait);	while (1) {		if (sk->sk_err)			return sock_error(sk);		if ((1 << sk->sk_state) & ~(TCPF_SYN_SENT | TCPF_SYN_RECV))			return -EPIPE;		if (!*timeo_p)			return -EAGAIN;		if (signal_pending(tsk))			return sock_intr_errno(*timeo_p);		prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE);		sk->sk_write_pending++;		if (sk_wait_event(sk, timeo_p,				  !((1 << sk->sk_state) & 				    ~(TCPF_ESTABLISHED | TCPF_CLOSE_WAIT))))			break;		finish_wait(sk->sk_sleep, &wait);		sk->sk_write_pending--;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6151b31c9616d71f714fc7ef8e2306f67f3b94c3/stream.c/clean/net/core/stream.c