+2003-09-04 Jakub Jelinek <jakub@redhat.com>
+
+ * libio/fileops.c (_IO_file_read, _IO_new_file_write): Add
+ __builtin_expect.
+ (_IO_file_open): Likewise. Use close_not_cancel.
+
2003-09-04 Ulrich Drepper <drepper@redhat.com>
* libio/libio.h: Define _IO_FLAGS2_NOTCANCEL.
{
int fdesc;
#ifdef _LIBC
- if (fp->_flags2 & _IO_FLAGS2_NOTCANCEL)
+ if (__builtin_expect (fp->_flags2 & _IO_FLAGS2_NOTCANCEL, 0))
fdesc = open_not_cancel (filename,
posix_mode | (is32not64 ? 0 : O_LARGEFILE), prot);
else
if (_IO_SEEKOFF (fp, (_IO_off64_t)0, _IO_seek_end, _IOS_INPUT|_IOS_OUTPUT)
== _IO_pos_BAD && errno != ESPIPE)
{
- close (fdesc);
+ close_not_cancel (fdesc);
return NULL;
}
INTUSE(_IO_link_in) ((struct _IO_FILE_plus *) fp);
#ifdef _LIBC
last_recognized = mode;
#endif
- for (i = 1; i < 5; ++i)
+ for (i = 1; i < 6; ++i)
{
switch (*++mode)
{
void *buf;
_IO_ssize_t size;
{
- return ((fp->_flags2 & _IO_FLAGS2_NOTCANCEL)
+ return (__builtin_expect (fp->_flags2 & _IO_FLAGS2_NOTCANCEL, 0)
? read_not_cancel (fp->_fileno, buf, size)
: read (fp->_fileno, buf, size));
}
_IO_ssize_t to_do = n;
while (to_do > 0)
{
- _IO_ssize_t count = ((f->_flags2 & _IO_FLAGS2_NOTCANCEL)
+ _IO_ssize_t count = (__builtin_expect (f->_flags2
+ & _IO_FLAGS2_NOTCANCEL, 0)
? write_not_cancel (f->_fileno, data, to_do)
: write (f->_fileno, data, to_do));
if (count < 0)