/** *sk_stream_wait_connect-Waitforasockettogetintotheconnectedstate *@sk:socktowaiton *@timeo_p:forhowlongtowait * *Mustbecalledwiththesocketlocked.
*/ int sk_stream_wait_connect(struct sock *sk, long *timeo_p)
{
DEFINE_WAIT_FUNC(wait, woken_wake_function); struct task_struct *tsk = current; int done;
do { int err = sock_error(sk); if (err) return err; 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);
do_error:
err = -EPIPE; goto out;
do_eagain: /* Make sure that whenever EAGAIN is returned, EPOLLOUT event can *begeneratedlater. *WhenTCPreceivesACKpacketsthatmakeroom,tcp_check_space() *onlycallstcp_new_space()ifSOCK_NOSPACEisset.
*/
set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
err = -EAGAIN; goto out;
do_interrupted:
err = sock_intr_errno(*timeo_p); goto out;
}
EXPORT_SYMBOL(sk_stream_wait_memory);
int sk_stream_error(struct sock *sk, int flags, int err)
{ if (err == -EPIPE)
err = sock_error(sk) ? : -EPIPE; if (err == -EPIPE && !(flags & MSG_NOSIGNAL))
send_sig(SIGPIPE, current, 0); return err;
}
EXPORT_SYMBOL(sk_stream_error);
void sk_stream_kill_queues(struct sock *sk)
{ /* First the read buffer. */
__skb_queue_purge(&sk->sk_receive_queue);
/* Next, the error queue. *Weneedtousequeuelock,becauseotherthreadsmight *addpacketstothequeuewithoutsocketlockbeingheld.
*/
skb_queue_purge(&sk->sk_error_queue);
/* Next, the write queue. */
WARN_ON_ONCE(!skb_queue_empty(&sk->sk_write_queue));
/* Account for returned memory. */
sk_mem_reclaim_final(sk);
WARN_ON_ONCE(sk->sk_wmem_queued);
/* It is _impossible_ for the backlog to contain anything *whenwegethere.Alluserreferencestothissocket *havegoneaway,onlythenetlayerknowscantouchit.
*/
}
EXPORT_SYMBOL(sk_stream_kill_queues);
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.18Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.