History log of /system/core/init/parser.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
304f12270dc0be564eb1b64624770aa72f25e59e 20-Dec-2011 Dima Zavin <dima@android.com> init: delay importing files until after parsing the current file

If we process the import directive inline, then the ordering of the
commands for the "on xxx" sections would be a little unexpected. The
init.rc files do not really have an implied order as to which section
appears and gets processed first. The init code itself provides that
ordering explicitly. For the user, the expectation is that if both the
current file and the imported file define a section (e.g. "on init"),
then the commands in the current file will be executed first, and then
the ones from the imported file(s).

The current implementation did not do that. It processed the import
directive inline, and thus the imported (i.e. dependent) files would
appear first in the command lists for the sections. This created
unintended side effects and the solution would have been to try and
put the import lines somewhere in the middle of the init file. This
would be difficult to notice and hard to extract the dependencies.

To solve this, we add the imports to a list for each file being parsed
and process the list after finishing parsing the file. This provides
predictable order for imports and provides a logical flow from the
user perspective: the currently parsed file gets to run its commands
before the files being imported.

Change-Id: I06dc35ff286314060e16b18923683cd2787269de
Signed-off-by: Dima Zavin <dima@android.com>
6310a8261c922533a692fb3e74ece2da98d4bafa 20-Apr-2010 Colin Cross <ccross@android.com> init: Split parser into generic parser and init parser

Change-Id: I451ebc4ff12f2ac660eb533fa10ad561fa25c9dd
ebc6ff105a114ff5b5465e64fa0f3889730da19d 14-Apr-2010 Colin Cross <ccross@android.com> init: Handle commands in event queue loop

Change-Id: I679059dae43143f3c8f16b68de5694539b699e50
ca7648ddfb46347c60014a849b0150a74df4e1d2 14-Apr-2010 Colin Cross <ccross@android.com> init: Move parser prototypes to parser.h

Change-Id: I31db51eb8e8a33a0bd06b41206bc9f9147d16d41