| MIL 10 Reference
| Customize Help
| Save Settings

MthrWaitMultiple



See also
Availability
Available in MIL-Lite
Available in MIL

Available on Windows
Available on Linux

Partially supported on:
Partially supported on Matrox GPU processing driver

Fully supported on:
Fully supported on Host system
Fully supported on Matrox CronosPlus
Fully supported on Matrox GigE Vision driver
Fully supported on Matrox IEEE 1394 IIDC driver
Fully supported on Matrox Iris GT
Fully supported on Matrox Morphis
Fully supported on Matrox Morphis QxT
Fully supported on Matrox Orion HD
Fully supported on Matrox Radient eCL
Fully supported on Matrox Radient eV-CXP
Fully supported on Matrox Solios eA/XA
Fully supported on Matrox Solios ecl/xcl/ev-cl
Fully supported on Matrox USB3 Vision driver (requires Update 19)
Fully supported on Matrox Vio

For any information regarding a MIL system added during a MIL Update, see the MIL system’s release note

Available on Non-Matrox computer
Available on Matrox 4Sight-X
Available on Matrox 4Sight GP
Available on Matrox Supersight
function map Function map
Examples
Next
Synopsis
Perform a wait operation on multiple MIL events.
Syntax
MIL_INT MthrWaitMultiple(
const MIL_ID *EventArrayIdPtr, //in
MIL_INT EventArraySize, //in
MIL_INT64 WaitOption, //in
MIL_INT *StatePtr //out
)
Description

This function allows you to synchronize the execution of threads by forcing the current thread to wait for one of the MIL events identified in a user-supplied array to change state. To force the current thread to wait for all events identified in the user-supplied array to change state, add M_ALL_OBJECTS to M_EVENT_WAIT or M_EVENT_SYNCHRONIZE when setting the WaitOption parameter.

Note that this function reference has not been updated for a MIL system added during a MIL update. Refer to the MIL system's release note to see which MIL system’s documentation you should use in its place and any possible differences.
Parameters
This function is not supported on the selected boards.
This function reference has not been updated for the selected MIL system. To show the content of this page, choose a second MIL system; refer to the MIL system's release note to see which MIL system’s documentation to choose and any possible differences.
Parameters
EventArrayIdPtr

Specifies the address of a user-supplied array that contains the identifiers of the MIL events for which to wait. All MIL event identifiers must be allocated, using MthrAlloc(), on the same system.

EventArraySize

Specifies the number of events in the user-supplied array.

WaitOption

Specifies the wait option.

See the Parameter associations section for possible values that can be specified.

StatePtr

Specifies the address in which to write the returned value.

Since the MthrWaitMultiple() function also returns the requested information, you can set this parameter to M_NULL.

See the Parameter associations section for possible values that can be returned.

The table below lists possible values for the WaitOption parameter and possible values returned to the StatePtr parameter.

function map For specifying the wait option
CollapseWaitOption Description
MIL system-specific
tooltip (†)
StatePtr
- Possible values returned
Collapse M_EVENT_SYNCHRONIZE +

Allows the current thread to continue executing while forcing its corresponding on-board thread, located on the same board as the events identified in the user-supplied array, to wait for one of the events to be in an M_SIGNALED state or for a time out to occur.

If the events are allocated on a board that supports asynchronous calls, MIL issues the wait command to that board and allows the current thread to continue executing. Its corresponding thread, on that board, waits for an event identified in the array to change to a signaled state. Any subsequent calls issued on that on-board thread are executed only after an event is signaled.

If the specified event is not allocated on a board that supports asynchronous calls, this value behaves like M_EVENT_WAIT in that it forces the current thread to wait until the event is signaled or timed out. MthrWaitMultiple() set to M_EVENT_SYNCHRONIZE always returns M_UNKNOWN.

If the event that changes state is of the type that is reset automatically (M_AUTO_RESET), the state of the event is reset to M_NOT_SIGNALED, after the wait operation.

(summarize)
a b c d e f g h i j k l m n o p q r s
MIL system specific

Note that while a GPU system supports asynchronous calls, M_EVENT_SYNCHRONIZE will behave like M_EVENT_WAIT, as described above.

d
Collapse M_UNKNOWN

Specifies that WaitOption parameter is set to M_EVENT_SYNCHRONIZE.

a b c d e f g h i j k l m n o p q r s
Collapse M_EVENT_WAIT +

Forces the current thread to wait for an event, identified in the user-supplier array, to change to the M_SIGNALED state or for the events to timeout. The current thread will not continue until one of the specified events has changed to a signaled state or timed out.

If the event that changed state is of the type that is reset automatically (M_AUTO_RESET), after the wait operation, the state of the event is reset to M_NOT_SIGNALED.

(summarize)
a b c d e f g h i j k l m n o p q r s
Collapse M_TIMEOUT

Specifies that none of the events in the array have changed state before the time out interval is reached.

a b c d e f g h i j k l m n o p q r s
Collapse Value

Specifies the index of the event that changed to the M_SIGNALED state.

a b c d e f g h i j k l m n o p q r s
Combination constant for the values listed in For specifying the wait option.

You can add the following value to the above-mentioned values to specify that the current thread must wait for all events to change state or for a timeout to occur.

function map For specifying that the thread must wait for all the events to change state
CollapseWaitOption Description
StatePtr
- Possible values returned
Collapse M_ALL_OBJECTS

Waits for all the events identified in the user-supplied array to be in a M_SIGNALED state or for the events to time out.

(summarize)
Collapse M_SIGNALED

Specifies that all the events have changed state.

Collapse M_TIMEOUT

Specifies that the time out interval has been reached before all the events in the array have changed state.

Collapse M_UNKNOWN

Specifies that WaitOption parameter is set to M_EVENT_SYNCHRONIZE.

Combination constant for the values listed in For specifying the wait option.

You can add the following value to the above-mentioned values to set the time interval after which an event is considered to be timed out.

function map For events
CollapseCombination value Description
Collapse

Specifies the time interval after which an event is considered to be timed out.

(summarize)
Parameters

Sets the required timeout interval, in msecs. Set this parameter to the following:

M_INFINITE

Specifies an infinitely long timeout interval.

0

Same as M_INFINITE.

Value > 0

Sets the timeout interval to a user-defined value, in msecs.

Return value
The returned value for M_EVENT_WAIT is the index of the event that changed to the M_SIGNALED state, or M_TIMEOUT if none of the events in the array changed state before the time out interval is reached. For M_EVENT_WAIT + M_ALL_OBJECTS, the returned value is M_SIGNALED if all the events specified in the array changed state, or M_TIMEOUT if the time out interval is reached before all the events in the array have changed state. For M_EVENT_SYNCHRONIZE, the returned value is M_UNKNOWN.
Compilation information
Header Include mil.h.
Library Use mil.lib.
DLL Requires mil.dll.
EVENT SYNCHRONIZE UNKNOWN EVENT WAIT TIMEOUT ALL OBJECTS SIGNALED TIMEOUT UNKNOWN INFINITE