hurd: Mark various conditions as unlikely

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20230429131354.2507443-3-bugaevc@gmail.com>
This commit is contained in:
Sergey Bugaev 2023-04-29 16:13:50 +03:00 committed by Samuel Thibault
parent 3fd996d32c
commit a9fb57105e
2 changed files with 7 additions and 7 deletions

View File

@ -73,18 +73,18 @@ _hurd_fd_get (int fd)
HURD_CRITICAL_BEGIN; HURD_CRITICAL_BEGIN;
__mutex_lock (&_hurd_dtable_lock); __mutex_lock (&_hurd_dtable_lock);
if (fd < 0 || fd >= _hurd_dtablesize) if (__glibc_unlikely (fd < 0 || fd >= _hurd_dtablesize))
descriptor = NULL; descriptor = NULL;
else else
{ {
struct hurd_fd *cell = _hurd_dtable[fd]; struct hurd_fd *cell = _hurd_dtable[fd];
if (cell == NULL) if (__glibc_unlikely (cell == NULL))
/* No descriptor allocated at this index. */ /* No descriptor allocated at this index. */
descriptor = NULL; descriptor = NULL;
else else
{ {
__spin_lock (&cell->port.lock); __spin_lock (&cell->port.lock);
if (cell->port.port == MACH_PORT_NULL) if (__glibc_unlikely (cell->port.port == MACH_PORT_NULL))
/* The descriptor at this index has no port in it. /* The descriptor at this index has no port in it.
This happens if it existed before but was closed. */ This happens if it existed before but was closed. */
descriptor = NULL; descriptor = NULL;
@ -107,7 +107,7 @@ _hurd_fd_get (int fd)
#define HURD_FD_USE(fd, expr) \ #define HURD_FD_USE(fd, expr) \
({ struct hurd_fd *descriptor = _hurd_fd_get (fd); \ ({ struct hurd_fd *descriptor = _hurd_fd_get (fd); \
descriptor == NULL ? EBADF : (expr); }) __glibc_unlikely (descriptor == NULL) ? EBADF : (expr); })
/* Evaluate EXPR with the variable `port' bound to the port to FD, and /* Evaluate EXPR with the variable `port' bound to the port to FD, and
`ctty' bound to the ctty port. */ `ctty' bound to the ctty port. */
@ -125,7 +125,7 @@ _hurd_fd_get (int fd)
io_t port, ctty; \ io_t port, ctty; \
void *crit = _hurd_critical_section_lock (); \ void *crit = _hurd_critical_section_lock (); \
__spin_lock (&__d->port.lock); \ __spin_lock (&__d->port.lock); \
if (__d->port.port == MACH_PORT_NULL) \ if (__glibc_unlikely (__d->port.port == MACH_PORT_NULL)) \
{ \ { \
__spin_unlock (&__d->port.lock); \ __spin_unlock (&__d->port.lock); \
_hurd_critical_section_unlock (crit); \ _hurd_critical_section_unlock (crit); \

View File

@ -254,9 +254,9 @@ _hurd_critical_section_unlock (void *our_lock)
sigset_t pending; sigset_t pending;
_hurd_sigstate_lock (ss); _hurd_sigstate_lock (ss);
__spin_unlock (&ss->critical_section_lock); __spin_unlock (&ss->critical_section_lock);
pending = _hurd_sigstate_pending(ss) & ~ss->blocked; pending = _hurd_sigstate_pending (ss) & ~ss->blocked;
_hurd_sigstate_unlock (ss); _hurd_sigstate_unlock (ss);
if (! __sigisemptyset (&pending)) if (__glibc_unlikely (!__sigisemptyset (&pending)))
/* There are unblocked signals pending, which weren't /* There are unblocked signals pending, which weren't
delivered because we were in the critical section. delivered because we were in the critical section.
Tell the signal thread to deliver them now. */ Tell the signal thread to deliver them now. */