Closed ayase-mstk closed 4 months ago
epoll_create関数を使用可能関数に変更。
エラーハンドリング polling apiのシステムコールのみ対応。(起こりうるのはENOMEM)
select, poll -> wait系のシステムコール時にメモリ確保するので、そのタイミングでENOMEMが起こりうる。 起こったら、timeoutが一番近いclientから削除していく。削除するclientがなくなったらpollingし続ける。
epoll, kqueue -> epoll_ctlやイベント登録時のkeventでENOMEMが起こりうる。起こるのはおそらく新しくイベントを追加するときだけなので、acceptした後のaddNewEventが失敗したときのみ、そのクライアントとの接続を切る。
共有点
epoll_create関数を使用可能関数に変更。
エラーハンドリング polling apiのシステムコールのみ対応。(起こりうるのはENOMEM)
select, poll -> wait系のシステムコール時にメモリ確保するので、そのタイミングでENOMEMが起こりうる。 起こったら、timeoutが一番近いclientから削除していく。削除するclientがなくなったらpollingし続ける。
epoll, kqueue -> epoll_ctlやイベント登録時のkeventでENOMEMが起こりうる。起こるのはおそらく新しくイベントを追加するときだけなので、acceptした後のaddNewEventが失敗したときのみ、そのクライアントとの接続を切る。