close method
close(2).
Implementation
@override
int close(int fd) {
unawaited(_eventReaders.remove(fd)?.controller.close() ?? Future.value());
final request = _requestFds.remove(fd);
if (request != null) {
request.offsets.forEach(request.chip.owners.remove);
for (final offset in request.offsets) {
_emitInfoChange(request.chip, offset, LineChangeKind.released.value);
}
return 0;
}
// A chip descriptor going away takes its watches with it.
_watched.remove(fd);
unawaited(_infoReaders.remove(fd)?.close() ?? Future.value());
if (_chipFds.remove(fd) != null) return 0;
_errno = Errno.ebadf;
return -1;
}