VMS Help  —  RTL Routines, PPL$
Lock-id is returned by PPL$CREATE_SPIN_LOCK. flags OpenVMS usage mask_longword type longword (unsigned) access read only mechanism by reference Bit mask specifying options for seizing the lock. The flags argument is a longword bit mask containing the flag. The valid value for flags is as follows: PPL$M_NON_ The lock is seized if and only if it can BLOCKING be done without causing the caller to wait (spin). (This can be useful in situations where the cost of waiting for a resource is not desirable, or if the caller merely intends to request immediate access to any one of a number of resources.)

41  –  PPL$SET_QUORUM

    The Set Barrier Quorum routine dynamically sets a value for the
    specified barrier's quorum.

    Format

      PPL$SET_QUORUM  barrier-id ,quorum

41.1  –  Arguments

 barrier-id

    OpenVMS usage identifier
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Identifier of the barrier. The barrier-id argument is the address
    of the barrier identifier.

    Barrier-id is returned by PPL$CREATE_BARRIER.

 quorum

    OpenVMS usage word_signed
    type          word (signed)
    access        read only
    mechanism     by reference
    The number of participants required to terminate an active
    wait for this barrier. The quorum argument is the address of a
    signed word containing the quorum number. For example, a quorum
    value of 3 indicates that the first two callers of PPL$WAIT_
    AT_BARRIER specifying this barrier-id are blocked until a third
    participant calls PPL$WAIT_AT_BARRIER. At that point, all three
    are released for further processing. If you specify zero for
    quorum, the quorum is set to the number of processes currently in
    the application. The value of quorum must be positive or zero.

42  –  PPL$SET_SEMAPHORE_MAXIMUM

    The Set a Semaphore Maximum routine dynamically sets the maximum
    value of a semaphore.

    Format

      PPL$SET_SEMAPHORE_MAXIMUM  semaphore-id ,semaphore-maximum

42.1  –  Arguments

 semaphore-id

    OpenVMS usage identifier
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Identifier of the semaphore. The semaphore-id argument is the
    address of an unsigned longword containing the identifier.

 semaphore-maximum

    OpenVMS usage word_signed
    type          word (signed)
    access        read only
    mechanism     by reference
    New maximum value of the semaphore. The semaphore-maximum
    argument is the address of a signed word containing the maximum
    value. This value must be nonnegative.

43  –  PPL$SPAWN

    The Initiate Parallel Execution routine executes code in parallel
    with the caller by creating one or more subordinate threads of
    execution (OpenVMS subprocesses).

    Format

      PPL$SPAWN  copies [,program-name] [,children-ids] [,flags]

                 [,std-input-file] [,std-output-file]

43.1  –  Arguments

 copies

    OpenVMS usage longword_unsigned
    type          longword (unsigned)
    access        modify
    mechanism     by reference
    Number of subordinates of the specified program to be executed
    concurrently. The copies argument is the address of an unsigned
    longword containing this number. Its value must be positive.
    If you specify a value greater than 1 for the copies argument,
    each copy created will have the same subprocess information (for
    example, standard input and output files). If you want to specify
    different information for each subprocess, call PPL$SPAWN once
    for each subprocess.

    On output, this parameter contains the number of subordinates
    actually created. This value differs from the requested number
    if an individual spawn attempt fails, for example, because of
    insufficient quotas.

 program-name

    OpenVMS usage logical_name
    type          character string
    access        read only
    mechanism     by descriptor, fixed-length
    Name of the program (image) to be invoked. The program-name
    argument is the address of a descriptor pointing to a character
    string containing the file specification of the image. Program-
    name must have no more than 63 characters. If program-name
    contains a logical name, the equivalence name must be in a
    logical name table that the created subordinate can access. If
    you do not specify a program-name, the default is to execute in
    parallel the image being run by the caller.

 children-ids

    OpenVMS usage vector_longword_unsigned
    type          longword (unsigned)
    access        write only
    mechanism     by reference, array reference
    Identifiers of each of the newly created subordinates. The
    children-ids argument is the address of a vector of longwords
    into which is written the index within the executing application
    of each subordinate successfully initiated by this call.

 flags

    OpenVMS usage mask_longword
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Bit mask specifying options for creating processes. The flags
    argument is a longword bit mask containing the flags. Valid
    values for flags are as follows:

    PPL$M_INIT_      If set, the caller of this routine and
    SYNCH            all subordinates created by this call are
                     synchronized to continue processing only after
                     each and every subordinate created by this call
                     has called PPL$CREATE_APPLICATION. (See the
                     Description section for more information.) A
                     failure of the created subordinate after it
                     successfully starts but before its call to
                     PPL$CREATE_APPLICATION can cause difficulties
                     with the use of this flag value.
    PPL$M_NOCLISYM   If set, the created processes do not inherit CLI
                     symbols from the calling process. The default
                     action is for created processes to inherit all
                     currently defined CLI symbols.
    PPL$M_           If set, prompt strings are not prefixed by
    NOCONTROL        carriage return/line feeds. The default action
                     is to prefix any prompt string specified with a
                     carriage return/line feed.
    PPL$M_NODEBUG    Prevents the startup of the OpenVMS Debugger,
                     even if the debugger was linked with the image.
    PPL$M_NOKEYPAD   If set, created processes inherit the current
                     keypad symbols and state from the calling
                     process. The default action is that created
                     processes do not inherit keypad symbols and
                     state.
    PPL$M_NOLOGNAM   If set, created processes do not inherit process
                     logical names from the calling process. The
                     default is for created processes to inherit all
                     currently defined process logical names.
    PPL$M_NOTIFY     If set, a message is broadcast to SYS$OUTPUT as
                     each process terminates. This flag is ignored if
                     the process is not interactive (for example, run
                     in batch).

 std-input-file

    OpenVMS usage logical-name
    type          character string
    access        read only
    mechanism     by descriptor
    File name of the file to serve as the standard input file in the
    created subordinates. The std-input-file argument is the address
    of a descriptor pointing to a character string containing the
    file name. If you do not specify a value for this argument, the
    subordinate inherits the creating participant's standard input
    file (SYS$INPUT).

 std-output-file

    OpenVMS usage logical-name
    type          character string
    access        read only
    mechanism     by descriptor
    File name of the file to serve as the standard output file in the
    created subordinates. The std-output-file argument is the address
    of a descriptor pointing to a character string containing the
    file name. If you do not specify a value for this argument, the
    subordinate inherits the creating participant's standard output
    file (SYS$OUTPUT).

44  –  PPL$STOP

    The Stop a Participant routine terminates the execution of the
    specified participant in this application.

    Format

      PPL$STOP  participant-index

44.1  –  Arguments

 participant-index

    OpenVMS usage longword_unsigned
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    PPL$-defined index of the participant to be terminated. The
    participant-index argument is the address of an unsigned longword
    containing the index.

    Participant-index is obtained by a call to PPL$SPAWN or PPL$GET_
    INDEX.

45  –  PPL$TERMINATE

    The Abort PPL$ Participation routine ends the caller's
    participation in the application "prematurely"-that is, at some
    time before the caller actually completes its execution.

    Format

      PPL$TERMINATE  [flags]

45.1  –  Arguments

 flags

    OpenVMS usage mask_longword
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Bit mask specifying options for terminating access to PPL$. The
    flags argument is the address of a longword bit mask containing
    the flag. The flags argument accepts the following value:

    PPL$M_STOP_        Terminates all subordinates created by
    CHILDREN           the caller in addition to terminating the
                       caller itself. (PPL$ makes no effort to
                       delete subordinates at process termination
                       in the absence of a call to this routine
                       specifying this flag value, but note that an
                       OpenVMS subprocess is deleted when the parent
                       terminates.)

46  –  PPL$TRIGGER_EVENT

    The Trigger an Event routine causes the event's state to become
    occurred. You control whether all pending actions for the event
    are processed (made to occur), or just one is processed. A
    pending action can be an AST, a signal (condition), or a wakeup.

    Format

      PPL$TRIGGER_EVENT  event-id [,event-param] [,flags]

46.1  –  Arguments

 event-id

    OpenVMS usage identifier
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Identifier of the event. The event-id argument is the address of
    an unsigned longword containing the identifier.

    Event-id is returned by PPL$CREATE_EVENT.

 event-param

    OpenVMS usage user_arg
    type          longword (unsigned)
    access        read only
    mechanism     by value
    An arbitrary value to be passed to all requests processed for
    the event as a result of the trigger, or, if there are no queued
    event notification requests for this event, to the first caller
    to enable event notification. The event-param argument is the
    address of an unsigned longword containing this value. The value
    of event-param is received by the output argument of PPL$AWAIT_
    EVENT.

    If a participant enables delivery of an AST by calling
    PPL$ENABLE_EVENT_AST, this argument appears in the second
    longword of the vector specified by the astprm argument. If a
    participant enables delivery of a signal by calling PPL$ENABLE_
    EVENT_SIGNAL, this argument appears as the third longword in the
    signal vector when the condition is raised.

 flags

    OpenVMS usage mask_longword
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Specifies options for triggering an event. The flags argument is
    the address of a longword bit mask containing the flag. The valid
    value for flags is as follows:

    PPL$M_NOTIFY_ONE   Processes exactly one enabled event
                       notification. By default, all pending actions
                       are processed when the event state becomes
                       occurred.

47  –  PPL$UNIQUE_NAME

    The Produce a Unique Name routine returns an application-unique
    name. A system-unique string specific to the calling application
    is appended to the string specified by the user. The resulting
    name is identical for all participants in the application, but
    different from those for all other applications on that system.

    Format

      PPL$UNIQUE_NAME  name-string ,resultant-string

                       [,resultant-length] [,flags]

47.1  –  Arguments

 name-string

    OpenVMS usage char_string
    type          character string
    access        read only
    mechanism     by descriptor
    The user-supplied string to be appended by the 'TOP' processes'
    PID. When combined, they will provide a name unique to this
    application.

 resultant-string

    OpenVMS usage char_string
    type          character string
    access        write only
    mechanism     by descriptor
    Resulting unique name. The resultant-string argument is the
    address of a descriptor pointing to a character string containing
    this name. Resultant-string consists of the name-string string
    and an appended system-unique string.

 resultant-length

    OpenVMS usage word_unsigned
    type          word (unsigned)
    access        write only
    mechanism     by reference
    Length of the unique name returned as the resultant-string. The
    resultant-length argument is the address of an unsigned word
    containing this length.

 flags

    OpenVMS usage word_unsigned
    type          longword (unsigned)
    access        write only
    mechanism     by reference
    Specifies whether the supplied name should be unique to the
    application, to the calling process, or to this particular call.
    The default is application-unique. The valid values for flags are
    as follows:

    PPL$M_PROC_UNIQUE  Indicates that the caller wishes the returned
                       name to be unique to the calling process.
    PPL$M_CALL_UNIQUE  Indicates that the caller wishes the returned
                       name to be unique to this particular call.

48  –  PPL$WAIT_AT_BARRIER

    The Synchronize at a Barrier routine causes the caller to wait at
    the specified barrier. The barrier is in effect from the time the
    first participant calls PPL$WAIT_AT_BARRIER until each member of
    the quorum has issued the call. At that time, the wait concludes
    and all are released for further execution.

    Format

      PPL$WAIT_AT_BARRIER  barrier-id ,flags ,spin

48.1  –  Arguments

 barrier-id

    OpenVMS usage identifier
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Identifier of the barrier. The barrier-id argument is the address
    of an unsigned longword containing the barrier identifier.

    Barrier-id is returned by PPL$CREATE_BARRIER.

 flags

    OpenVMS usage identifier
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Specifies options for the wait_at_barrier operation. The flags
    argument is the value of a longword bit mask containing the flag.
    The bit, when set, specifies the corresponding option. Valid
    values for flags are as follows:

    PPL$M_SPIN_WAIT    Indicates that the caller is never to block,
                       but rather to always spin while waiting at
                       this barrier.
    PPL$M_SPIN_        Indicates that the caller wishes to spin for
    COUNTED            a given amount of instructions and then to
                       block.

    The default is block immediately, do not spin at all.

 spin

    OpenVMS usage identifier
    type          long (unsigned)
    access        read only
    mechanism     by reference
    This value must be specified when using the PPL$M_SPIN_COUNTED
    flag and represents a relative time that a process will spin
    before blocking.
Close Help