core/builtins/start.cif
author Joe Branton <joe.branton@accenture.com>
Thu, 29 Jul 2010 12:02:58 +1000
changeset 14 4ab8c027df23
parent 0 7f656887cf89
permissions -rw-r--r--
Fixed a defect in iosrv.exe that caused a panic if a foreground read object was attached to a different end point. This was due to the read object being notified of a change in foreground before its iEndPoint member was updated. This member is now updated before attempting the attach, and is set to NULL in the event of a leave (resulting in the read object being left in an unattached state). Also tweaked ymodem.cif to make it more readable.

# start.cif
# 
# Copyright (c) 2010 Accenture. All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
# 
# Initial Contributors:
# Accenture - Initial contribution
#

==name start

==short-description

Starts the specified process and then completely disowns it.

==long-description

This is useful in the situation where you want the process to have a longer lifetime than the L<fshell|fshell> instance that created it. Note the child process does not inherit fshell's I/O handles or environment variables.

==see-also

L<disown|disown>, L<time|time>

==argument string exe-name

The executable to start.

==argument string arguments optional last

The arguments to pass to the exe.

==option bool r rendezvous

Wait for the child process to call C<RProcess::Rendezvous> before exiting. Can not be used with C<--wait>.

==option bool w wait

Wait for the child process to exit before exiting. May not be used with C<--rendezvous>.

==option int t timeout

Only relevant with either C<--rendezvous> or C<--wait>. Causes the command to abort after the specified number of seconds if the child process hasn't called C<RProcess::Rendezvous> or exited (as appropriate) in that time. If the timeout is zero or not specified, the command will wait indefinitely.

==option bool m measure

If specified, measure the time taken for the child process to rendezvous (if C<--rendezvous> is specified) or exit (if C<--wait> is specified). This can be more accurate than using the fshell L<time|time> command if C<exe-name> is not an fshell command, because start doesn't attempt to parse its arguments as an fshell command line (adding the overhead of variable expansion, pipeline establishment etc) or to set up iosrv connections for the child process.

==copyright

Copyright (c) 2006-2010 Accenture. All rights reserved.