Condividi tramite


Completamento sincrono e asincrono del verbo LUA

I verbi LUA (Logical Unit Application) possono completare l'esecuzione in modo sincrono o asincrono.

Completamento sincrono del verbo

Quando LUA è in grado di completare tutta l'elaborazione di un verbo non appena viene emesso, il verbo è stato completato in modo sincrono. In questo caso, il codice restituito primario viene impostato su un valore diverso da LUA_IN_PROGRESS e il bit lua_flag2.async è impostato su zero.

Il valore del bit lua_flag2.async deve essere testato, piuttosto che verificare se il codice restituito principale è diverso da LUA_IN_PROGRESS. Per informazioni su questi parametri restituiti, vedere descrizioni dei singoli verbi.

Completamento asincrono del verbo

Alcuni verbi LUA (ad esempio , RUI_PURGE) vengono completati rapidamente dopo l'elaborazione locale. Tuttavia, la maggior parte dei verbi richiede tempo perché richiedono l'invio e la ricezione dei messaggi dal nodo locale o dall'applicazione host.

Quando LUA deve attendere informazioni dall'lu remoto o dal nodo locale prima di poter completare un verbo, il verbo viene completato in modo asincrono.

In questo caso, il bit lua_flag2.async è impostato su 1. Il codice restituito primario è in genere impostato anche su LUA_IN_PROGRESS, ma questo valore non può essere considerato affidabile. Il valore del bit lua_flag2.async deve essere testato. L'applicazione può ora eseguire altre elaborazioni o attendere la notifica da LUA che il verbo è stato completato. LUA invia questa notifica impostando il codice restituito primario sul valore finale e lasciando lua_flag2.async impostato su 1.

Quando l'operazione è completata, LUA esegue le operazioni seguenti a seconda dell'ambiente:

  • Per Windows sono possibili due tipi di notifica. L'applicazione LUA consente di:

    Problemi relativi a WaitForSingleObject o WaitForMultipleObject.

    — o —

    Invia il messaggio di notifica "WinRUI/WinSLI" all'handle della finestra del messaggio WinRUI/WinSLI .

    Il metodo di evento che usa WaitForSingleObject o WaitForMultipleObject è il modo preferito per ricevere notifiche asincrone in Windows.

  • Nell'ambiente Windows notifica il completamento di una richiesta asincrona pubblicando il messaggio di notifica "WinRUI/WinSLI" all'handle della finestra del messaggioWinSLI/. Un handle di finestra è stato aggiunto come primo parametro passato ai punti di ingresso WinRUI e WinSLI.