# Name

VixJob_Wait

# Description

    VixError
    VixJob_Wait(VixHandle jobHandle,
                VixPropertyID firstPropertyID,
                ...);

Wait for a particular job to complete. Unsuitable for asynchronous operations with callback procedure.

# Parameters

jobHandle
  The handle of a job object, returned from any asynchronous Vix function.
firstPropertyID
  The identity of a property, or else VIX_PROPERTY_NONE.

# Return Value

VixError. The error resulting from the asynchronous operation that returned the job handle.

# Remarks

- This function blocks until the job completes.
- If one or more property IDs are passed, their values are returned by this function. A property is requested by passing its ID in one parameter, followed by a reference to a storage location of the same type as the property value. After the last reference, terminate the list with the value VIX_PROPERTY_NONE.
- The error code returned by this function is the same as the error code returned by VixJob_GetError().
- The error code returned by this function is also available in the VIX_JOB_RESULT_ERROR_CODE property of the job object.
- Do not use VixJob_Wait() to complete a job for which you have passed a callback routine. The completion order in such a situation is undefined, and you cannot rely on the resulting property values.

# Side Effects

None.

# Requirements

vix.h, since VMware Server 1.0.

# Example

    VixError err = VIX_OK;
    VixHandle hostHandle = VIX_INVALID_HANDLE;
    VixHandle jobHandle = VIX_INVALID_HANDLE;
    VixHandle vmHandle = VIX_INVALID_HANDLE;
    int errorLineNum;

    jobHandle = VixHost_Connect(VIX_API_VERSION,
                                VIX_SERVICEPROVIDER_VMWARE_WORKSTATION,
                                NULL, // hostName
                                0, // hostPort
                                NULL, // userName
                                NULL, // password,
                                0, // options
                                VIX_INVALID_HANDLE, // propertyListHandle
                                NULL, // callbackProc
                                NULL); // clientData

    err = VixJob_Wait(jobHandle,
                      VIX_PROPERTY_JOB_RESULT_HANDLE,
                      &hostHandle,
                      VIX_PROPERTY_NONE);

    if (VIX_OK != err) {
       // Handle the error...
       goto abort;
    }

    Vix_ReleaseHandle(jobHandle);
    jobHandle = VixVM_Open(hostHandle,
                           "c:\\Virtual Machines\\vm1\\win2000.vmx",
                           NULL, // callbackProc
                           NULL); // clientData
    err = VixJob_Wait(jobHandle,
                      VIX_PROPERTY_JOB_RESULT_HANDLE,
                      &vmHandle,
                      VIX_PROPERTY_NONE);
    if (VIX_OK != err) {
       // Handle the error...
       goto abort;
    }
    abort:
    Vix_ReleaseHandle(jobHandle);
    Vix_ReleaseHandle(vmHandle);
    VixHost_Disconnect(hostHandle);

Copyright (C) 2007-2018 VMware, Inc. All rights reserved.