Line 646: |
Line 646: |
| </div> | | </div> |
| | | |
− | Works with num_handles <= 0x40, error on num_handles == 0. | + | Works with num_handles <= 0x40. |
| + | |
| + | When zero handles are passed, this will wait forever until either timeout or cancellation occurs. |
| | | |
| Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. | | Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. |
Line 653: |
Line 655: |
| | | |
| '''Port:''' signals when there is an incoming connection waiting to be [[#svcAcceptSession|accepted]]. | | '''Port:''' signals when there is an incoming connection waiting to be [[#svcAcceptSession|accepted]]. |
| + | |
| + | '''Process:''' signals when the process undergoes a state change (retrievable via [[#svcGetProcessInfo]]). |
| + | |
| + | '''ReadableEvent:''' signals when the event has been signaled via svcSignalEvent. |
| | | |
| '''Session (server-side):''' signals when there is an incoming message waiting to be [[#svcReplyAndReceive|received]] or the pipe is closed. | | '''Session (server-side):''' signals when there is an incoming message waiting to be [[#svcReplyAndReceive|received]] or the pipe is closed. |
Line 658: |
Line 664: |
| === Result codes === | | === Result codes === |
| | | |
− | '''0x0:''' Success. One of the objects was signalled before the timeout expired. Handle index is updated to indicate which object signalled. | + | '''0x0:''' Success. One of the objects was signaled before the timeout expired, or one of the objects is a Session with a closed remote. Handle index is updated to indicate which object signaled. |
| | | |
| '''0x7601:''' Thread termination requested. Handle index is not updated. | | '''0x7601:''' Thread termination requested. Handle index is not updated. |
Line 664: |
Line 670: |
| '''0xe401:''' Invalid handle. Returned when one of the handles passed is invalid. Handle index is not updated. | | '''0xe401:''' Invalid handle. Returned when one of the handles passed is invalid. Handle index is not updated. |
| | | |
− | '''0xea01:''' Timeout. Returned when no objects have been signalled within the timeout. Handle index is not updated. | + | '''0xe601:''' Invalid address. Returned when the handles pointer is not a readable address. Handle index is not updated. |
| + | |
| + | '''0xea01:''' Timeout. Returned when no objects have been signaled within the timeout. Handle index is not updated. |
| | | |
| '''0xec01:''' Interrupted. Returned when another thread uses [[#svcCancelSynchronization]] to cancel this thread. Handle index is not updated. | | '''0xec01:''' Interrupted. Returned when another thread uses [[#svcCancelSynchronization]] to cancel this thread. Handle index is not updated. |
| | | |
− | '''0xf601:''' Session closed. Returned when one of the handles represents a session that has been closed. Handle index is updated. | + | '''0xee01:''' Too many handles. Returned when the number of handles passed is > 0x40. |
| | | |
| == svcCancelSynchronization == | | == svcCancelSynchronization == |