bin: handle thousands of output files

Fixes #534.

* bin/common_file.hh, bin/common_file.cc: Make it possible
to reopen a closed file.
* bin/common_output.cc, bin/common_aoutput.cc: Add a heuristic
to decide when to close files.
* tests/core/serial.test: Add a test case.
* NEWS: Mention the issue.
This commit is contained in:
Alexandre Duret-Lutz 2023-07-24 16:56:24 +02:00
parent 17a5b41d8c
commit 40e30df7e3
6 changed files with 76 additions and 1 deletions

View file

@ -69,3 +69,12 @@ b/1
2,1
EOF
diff -u out exp
# Split on more than 1024 files. In Spot < 2.12 this was likely
# to run out of file descriptors, because they weren't closed.
randaut -Q3 2 -n 2000 -o randaut-%l.hoa
test 2000 = `ls -l randaut-*.hoa | wc -l`
# likewise for LTL formulas
randltl 2 -n 2000 -o randltl-%l.ltl
test 2000 = `ls -l randltl-*.ltl | wc -l`