Re: Memory leak in wait

2015-02-28 Thread Jean Delvare
Hi Chet,

Sorry for reviving an old discussion, I lost track back then.

On Fri, 07 Nov 2014 08:24:07 -0500, Chet Ramey wrote:
> On 11/7/14, 3:49 AM, Jean Delvare wrote:
> > 2* If bash remembers the process statuses, how does one access the
> >information? I couldn't find anything related to that in the manual
> >page, but it's huge so maybe I missed it.
> 
> You can use wait with a pid argument, maybe one that you saved earlier
> in a script or obtained from `ps'.

My question is, what is the point of keeping the information after wait
has been called for that PID? If this is the only possible use of the
information, I do not understand why the record is not discarded after
calling "wait $pid".

I think we will stay away from background sleep and wait for now, and
instead use:

read -t 1 -N 0

This was suggested by an lm-sensors user and as far as I can tell it
fits the bill with no downside.

Thanks,
-- 
Jean Delvare
SUSE L3 Support



certain strings both legal and illegal as associative array keys

2015-02-28 Thread vampyrebat
Configuration Information [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: i686-pc-linux-gnu-gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' 
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
-DHAVE_CONFIG_H   -I. -I./include -I. -I./include -I./lib  
-DDEFAULT_PATH_VALUE='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
 -DSTANDARD_UTILS_PATH='/bin:/usr/bin:/sbin:/usr/sbin' 
-DSYS_BASHRC='/etc/bash/bashrc' -DSYS_BASH_LOGOUT='/etc/bash/bash_logout' 
-DNON_INTERACTIVE_LOGIN_SHELLS -DSSH_SOURCE_BASHRC -O2 -march=native -pipe
uname output: Linux evo 3.12.13-gentoo-3.12.13-custom #3 SMP Sat Jul 12 
18:05:24 CDT 2014 i686 Intel(R) Pentium(R) 4 CPU 1.70GHz GenuineIntel GNU/Linux
Machine Type: i686-pc-linux-gnu

Bash Version: 4.2
Patch Level: 45
Release Status: release

Description:

A string is either legal or not legal as a key for an associative array.  
However, bash accepts certain keys in some contexts but not in other contexts, 
making a few strings both legal and illegal as associative array key values.  
Bash's behavior should be consistent.

For instance, consider a key containing a single-quote character, "a'b".  The 
follow script allows this key to be both defined and accessed, but not removed. 
 If it can't be removed, it should fail to be set in the first place.  (Or, 
better, since it can be set and accessed, it should be able to be unset.)

The documentation says only that "associative arrays are referenced using 
arbitrary strings."  If there are restrictions on the content of these strings, 
that should be documented.


#!/bin/bash

declare -A foo

foo[a]="one"
foo["a'b"]="two"

echo "${foo[@]}"

echo ${foo[a]}
echo ${foo["a'b"]}

unset foo[a]
unset foo["a'b"]