aboutsummaryrefslogtreecommitdiff
path: root/hurd/hurdsig.c
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-03-01 19:23:55 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-03-02 00:32:55 +0100
commit0d41182e0e987b0a256d55152c36103c88b35585 (patch)
treed907796a07cb1ae4f075d1c0678723e5a821bb4a /hurd/hurdsig.c
parent60b21327b11f072607e4dcfb3f0cf4e594e50cea (diff)
downloadglibc-0d41182e0e987b0a256d55152c36103c88b35585.zip
glibc-0d41182e0e987b0a256d55152c36103c88b35585.tar.gz
glibc-0d41182e0e987b0a256d55152c36103c88b35585.tar.bz2
hurd: Fix some broken indentation
Also, fix a couple of typos. No functional change. Signed-off-by: Sergey Bugaev <bugaevc@gmail.com> Message-Id: <20230301162355.426887-2-bugaevc@gmail.com>
Diffstat (limited to 'hurd/hurdsig.c')
-rw-r--r--hurd/hurdsig.c101
1 files changed, 51 insertions, 50 deletions
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 5ff0a91..85bd46b 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -202,7 +202,7 @@ _hurd_sigstate_unlock (struct hurd_sigstate *ss)
}
libc_hidden_def (_hurd_sigstate_set_global_rcv)
-/* Retreive a thread's full set of pending signals, including the global
+/* Retrieve a thread's full set of pending signals, including the global
ones if appropriate. SS must be locked. */
sigset_t
_hurd_sigstate_pending (const struct hurd_sigstate *ss)
@@ -233,7 +233,7 @@ sigstate_clear_pending (struct hurd_sigstate *ss, int signo)
libc_hidden_def (_hurd_sigstate_lock)
libc_hidden_def (_hurd_sigstate_unlock)
-/* Retreive a thread's action vector. SS must be locked. */
+/* Retrieve a thread's action vector. SS must be locked. */
struct sigaction *
_hurd_sigstate_actions (struct hurd_sigstate *ss)
{
@@ -451,54 +451,55 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread,
*state_change = 1;
}
else if (state->basic.PC == (uintptr_t) &_hurd_intr_rpc_msg_in_trap
- /* The thread was blocked in the system call. After thread_abort,
- the return value register indicates what state the RPC was in
- when interrupted. */
- && state->basic.SYSRETURN == MACH_RCV_INTERRUPTED)
- {
- /* The RPC request message was sent and the thread was waiting for
- the reply message; now the message receive has been aborted, so
- the mach_msg call will return MACH_RCV_INTERRUPTED. We must tell
- the server to interrupt the pending operation. The thread must
- wait for the reply message before running the signal handler (to
- guarantee that the operation has finished being interrupted), so
- our nonzero return tells the trampoline code to finish the message
- receive operation before running the handler. */
-
- mach_port_t *reply = interrupted_reply_port_location (ss->thread,
- state,
- sigthread);
- error_t err = __interrupt_operation (intr_port, _hurdsig_interrupt_timeout);
-
- if (err)
- {
- if (reply)
- {
- /* The interrupt didn't work.
- Destroy the receive right the thread is blocked on. */
- __mach_port_destroy (__mach_task_self (), *reply);
- *reply = MACH_PORT_NULL;
- }
-
- /* The system call return value register now contains
- MACH_RCV_INTERRUPTED; when mach_msg resumes, it will retry the
- call. Since we have just destroyed the receive right, the
- retry will fail with MACH_RCV_INVALID_NAME. Instead, just
- change the return value here to EINTR so mach_msg will not
- retry and the EINTR error code will propagate up. */
- state->basic.SYSRETURN = EINTR;
- *state_change = 1;
- }
- else if (reply)
- rcv_port = *reply;
-
- /* All threads whose RPCs were interrupted by the interrupt_operation
- call above will retry their RPCs unless we clear SS->intr_port.
- So we clear it for the thread taking a signal when SA_RESTART is
- clear, so that its call returns EINTR. */
- if (! signo || !(_hurd_sigstate_actions (ss) [signo].sa_flags & SA_RESTART))
- ss->intr_port = MACH_PORT_NULL;
- }
+ /* The thread was blocked in the system call. After thread_abort,
+ the return value register indicates what state the RPC was in
+ when interrupted. */
+ && state->basic.SYSRETURN == MACH_RCV_INTERRUPTED)
+ {
+ /* The RPC request message was sent and the thread was waiting for the
+ reply message; now the message receive has been aborted, so the
+ mach_msg call will return MACH_RCV_INTERRUPTED. We must tell the
+ server to interrupt the pending operation. The thread must wait for
+ the reply message before running the signal handler (to guarantee that
+ the operation has finished being interrupted), so our nonzero return
+ tells the trampoline code to finish the message receive operation
+ before running the handler. */
+
+ mach_port_t *reply = interrupted_reply_port_location (ss->thread,
+ state,
+ sigthread);
+ error_t err = __interrupt_operation (intr_port,
+ _hurdsig_interrupt_timeout);
+
+ if (err)
+ {
+ if (reply)
+ {
+ /* The interrupt didn't work.
+ Destroy the receive right the thread is blocked on. */
+ __mach_port_destroy (__mach_task_self (), *reply);
+ *reply = MACH_PORT_NULL;
+ }
+
+ /* The system call return value register now contains
+ MACH_RCV_INTERRUPTED; when mach_msg resumes, it will retry the
+ call. Since we have just destroyed the receive right, the retry
+ will fail with MACH_RCV_INVALID_NAME. Instead, just change the
+ return value here to EINTR so mach_msg will not retry and the
+ EINTR error code will propagate up. */
+ state->basic.SYSRETURN = EINTR;
+ *state_change = 1;
+ }
+ else if (reply)
+ rcv_port = *reply;
+
+ /* All threads whose RPCs were interrupted by the interrupt_operation
+ call above will retry their RPCs unless we clear SS->intr_port. So we
+ clear it for the thread taking a signal when SA_RESTART is clear, so
+ that its call returns EINTR. */
+ if (! signo || !(_hurd_sigstate_actions (ss) [signo].sa_flags & SA_RESTART))
+ ss->intr_port = MACH_PORT_NULL;
+ }
return rcv_port;
}