base: avoid recreating socket at each call to listen()
authorNathanael Premillieu <nathanael.premillieu@huawei.com>
Thu, 13 Aug 2020 14:10:57 +0000 (16:10 +0200)
committerNathanael Premillieu <nathanael.premillieu@huawei.com>
Mon, 31 Aug 2020 07:36:24 +0000 (07:36 +0000)
commit82f881255da75799a11e80c22a6ff5fae8b174fb
tree407853ff0dc8e000c852c57828182367e10a7e41
parent5abb19c89b68eb3b6de15189f4f6703803ae1bdc
base: avoid recreating socket at each call to listen()

A new socket was created each time listen() is called,
which is problematic when the bind or listen operation
on it are not successful (mostly because the associated port is
already in use). It can lead gem5 to open too many files and crash
for multicores configurations, a socket being created
for remote GDB for each core. The other way to deal with
this problem would be to close the socket in the case the
function return false. But I find the proposed solution
simpler.

Change-Id: I848955a10c89e1da033bf773c83556a5dc5ef9a2
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32994
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/base/socket.cc