On Mon, Mar 11, 2024, 22:40 alex xmb sw ratchev <fxmb...@gmail.com> wrote:
> > > On Mon, Mar 11, 2024, 22:36 alex xmb sw ratchev <fxmb...@gmail.com> wrote: > >> ~ $ bash xmb.smallt >> pid 14333 cmd t2 returned 3 >> pid 14332 cmd sleep 1 returned 0 >> >> ~ $ cat xmb.smallt >> #!/bin/bash >> >> run() { >> local IFS=' ' run=$* >> eval "$run &" >> me[$!]=$run >> } >> > > alternativly to mention aliases usage > > shopt -s expand_aliases > > then in func > IFS=' ' > alias torun=$* > and with quotes prolly ye =/ then > torun & > > wa() { >> local pid >> wait -n -p pid >> printf %s\\n "pid $pid cmd ${me[pid]} returned $?" >> } >> >> t2() { >> sleep .75 >> return 3 >> } >> >> run sleep 1 >> run t2 >> >> wa >> wa >> >> On Mon, Mar 11, 2024, 22:24 Greg Wooledge <g...@wooledge.org> wrote: >> >>> 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. >>> >>>