parquet_debug_table_set_inflight Interface

interface
public module subroutine parquet_debug_table_set_inflight(table, appending, reading)

Arguments

Type IntentOptional Attributes Name
type(parquet_table), intent(in) :: table

the table whose counters to force.

logical, intent(in), optional :: appending

.true.: pretend an append is in flight.

logical, intent(in), optional :: reading

.true.: pretend a read is in flight.

Description

TEST-ONLY -- forces this table's "an append is in flight"/"a read is in flight" counters, so the two concurrency aborts can be provoked from ONE thread, deterministically.

This is a debug hook, not API. It exists because the guards it drives (table_check_no_append, and %append's own reader check) can otherwise only be triggered by two threads overlapping on demand, and a timing-dependent test is worse than no test -- it fails on a busy machine and gets disabled. Unlike the C++ parquet_debug_* hooks, which a test reaches through its own local bind(C) interface, a Fortran-side hook has no such escape hatch: these counters live on parquet_table_cache, whose components are private to this module, so forcing them requires a public procedure here. That cost was accepted deliberately (feature_risks.md Risk-6); it is excluded from README.md's API overview and no library code calls it.

Both arguments are optional and independent: appending=.true. makes every READ on this table abort, reading=.true. makes every %append abort. Pass .false. to clear.