Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Когда может возникнуть ситуация, что rev->instance != instance?
- To: nginx-ru@xxxxxxxxx
- Subject: Re: Когда может возникнуть ситуация, что rev->instance != instance?
- From: "megalodon" <nginx-forum@xxxxxxxx>
- Date: Fri, 27 Sep 2013 11:32:20 -0400
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=4Gv2nleSZVaDykGCO9Xfu3X3LKzg2FRlgMDx+GHxd40=; b=vJJCorpcGMP+Y0LAZ+kcze0l0f0FtSVNtPUKsFhB2h9R14phyt8obuPM0E7QuMEQIDM8QwUmTg3CdYMpTrFPSpSiiOtKtPaS9pgIZ4Tpc3UGoPkY4KQ81mz3MQCRRTCzrA/w0eCZCEPUD2WxgnhkEZIanlZqR3s2mSmVpIKXrdU=;
- In-reply-to: <20130927112628.GJ2271@mdounin.ru>
- References: <20130927112628.GJ2271@mdounin.ru>
Но после закрытия дескриптора, ядро автоматически удалит этот дескриптор из
своих структур и не будет по нему отслеживать события.
Ход событий в общем: воркер блокируется на epoll_wait(), по истечении
тайм-аута либо по получении nevent событий, воркер просыпается и в цикле
перебирает эти события. Допустим, встретилось событие на чтение и recv()
вернуло 0, мы закрываем соединение, при этом дескриптор удаляется из
структур подсистемы epoll, также в массив cycle->free_connections
возвращается структура ngx_connection_t.
Я не понимаю такой момент: почему ядро потом может вернуть событие для уже
закрытого сокета?
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,243182,243207#msg-243207
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|