can now use var_* functions from within your callback, they can even
trigger callback themselves, to any level. The main restriction is that
you shouldn't meddle with a variable that is already being triggered by
the current thread (other threads will just wait).
* ./src/misc/objects.c: fixed a deadlock in the "tree" command.
* ./modules/misc/testsuite/test4.c: added a "callback-test" command to the
rc interface to test callback loop detection and concurrent triggers.
by making the spawned threads wait a bit longer.
* ./src/misc/variables.c: added a usage count to the variables; trying to
create a variable with the same name only increments its refcount.
* ./include/main.h: removed p_vlc->i_status because it was not sufficient
to represent all the possible states of p_vlc; each part should be tested
separately upon destruction.
* ./src/misc/objects.c: fixed a signed/unsigned bug that prevented creation
of VLC_OBJECT_GENERIC objects.
* ./src/misc/variables.c: added the VLC_VAR_COMMAND type which is simply a
variable that stores a function pointer, and calls it when var_Get is
called for it. The function argument is taken in val.psz_string.
* ./src/misc/objects.c: vlc_dumpstructure and vlc_liststructure are no longer
exported to the rest of the program; instead, they're VLC_VAR_COMMAND vars
("tree" and "list").
* ./modules/control/rc/rc.c: moved a few commands to VLC_VAR_COMMAND vars.