YungTatyu / webserv

HTTP/1.1 server written in cpp.
1 stars 0 forks source link

Issue108 polling api error handle #235

Closed ayase-mstk closed 3 months ago

ayase-mstk commented 3 months ago

共有点

select, poll -> wait系のシステムコール時にメモリ確保するので、そのタイミングでENOMEMが起こりうる。 起こったら、timeoutが一番近いclientから削除していく。削除するclientがなくなったらpollingし続ける。

epoll, kqueue -> epoll_ctlやイベント登録時のkeventでENOMEMが起こりうる。起こるのはおそらく新しくイベントを追加するときだけなので、acceptした後のaddNewEventが失敗したときのみ、そのクライアントとの接続を切る。