Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

TSTART

Draft MDC Standard

8.2.35 TStart

TS[TART] postcond

[ SP ]
SP tstartargument


Editor’s note:
Is the above correct? Should it not be L tstartargument?
    tstartargument::=

[ restartargument ] [ : transparameters ]
@ expratom V L tstartargument


    restartargument::=



lname
( L lname )
*
( )




    transparameters::=

tsparam
( tsparam [ : tsparam ] ... )


    tsparam::= tstartkeyword [ = expr ]
    tstartkeyword::=


S[ERIAL]
T[RANSACTIONID] = expr
Z[unspecified] [ = expr ]



tstartkeywords that differ only in the use of corresponding upper and lower-case letters are equivalent.

Unused keywords other than those starting with the letter "Z" are reserved for future extensions to the standard.

tstartkeywords are processed in strict left-to-right order. When multiple equivalent tstartkeywords are encountered, the last occurrence will define the action(s) to be taken.

After evaluation of postcond, if any, and tstartargument, if any, a TStart command adds one to $TLevel. If, as a result, $TLevel is one, then a TStart command initiates a TRANSACTION that is restartable if a restartargument is present, or non-restartable if restartargument is absent; and serializable independently of Locks if transparameters are present and contain the keywords SERIAL or S, or dependent on Locks for serialization if those keywords are absent.

The tsparam, TRANSACTIONID, provides a means for identifying arbitrary classes of TRANSACTIONs.

The following discussion uses terms defined in the Variable Handling (see 7.1.2.2) and Process-Stack (see 7.1.2.3) models and, like those subclauses, does not imply a required implementation technique. The TStart command creates a REstart CONTEXT-STRUCTURE containing the execution location of the TStart command, values for $Test and the naked indicator, a copy of the process Lock-LIST, a REstart NAME-TABLE and an exclusive indicator. The TStart command attaches the CONTEXT-STRUCTURE to a linked list of such REstart CONTEXT-STRUCTUREs for the current TRANSACTION and also to a linked list of CONTEXT-STRUCTUREs associated with the current PROCESS-STACK frame. The TStart command copies from the currently active NAME-TABLE to the REstart NAME-TABLE all entries corresponding to the local variable names specified by the restartargument. The TStart command also points the entries in the REstart NAME-TABLE to copies of VALUE-TABLE tuples containing values that persist unchanged from the point that the TStart command created the NAME-TABLE. When the restartargument is an asterisk (*), it specifies all current names and causes the CONTEXT-STRUCTURE to be marked as exclusive.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 15-Nov-2023, 18:56:29.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)