On Mon, Mar 11, 2024 at 10:19:26PM +0100, Mischa Baars wrote: > On Mon, 11 Mar 2024, 21:08 Kerin Millar, <k...@plushkava.net> wrote: > > The pid can be obtained with the -p option, as of 5.1. Below is a > > synthetic example of how it might be put into practice.
I'd forgotten about that one. A recent addition, and one I've never used yet. > > #!/bin/bash > > > > declare -A job_by status_by > > max_jobs=4 > > jobs=0 > > > > wait_next() { > > local pid > > wait -n -p pid > > status_by[$pid]=$? > > > > How exactly is this indexing implemented internally? Does a first number on > index n take m bits (using a linked list) or does it take n * m bits (using > realloc(3))? "declare -A" makes it an associative array (hash table). Without that declare -A, it would be a sparsely indexed array. In either case, it doesn't just blindly allocate millions of bytes of memory. It uses something slimmer.