am 207c17ff: Merge "Make adb robust against EINTR"
* commit '207c17ff1f48d0db3c69628bb036a14db40b5887': Make adb robust against EINTR
This commit is contained in:
commit
1dc92bacb8
|
@ -202,7 +202,7 @@ static void echo_service(int fd, void *cookie)
|
|||
int c;
|
||||
|
||||
for(;;) {
|
||||
r = read(fd, buf, 4096);
|
||||
r = adb_read(fd, buf, 4096);
|
||||
if(r == 0) goto done;
|
||||
if(r < 0) {
|
||||
if(errno == EINTR) continue;
|
||||
|
|
|
@ -275,6 +275,7 @@ extern char* adb_strtok_r(char *str, const char *delim, char **saveptr);
|
|||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define OS_PATH_SEPARATOR '/'
|
||||
#define OS_PATH_SEPARATOR_STR "/"
|
||||
|
@ -310,7 +311,7 @@ static __inline__ int unix_open(const char* path, int options,...)
|
|||
{
|
||||
if ((options & O_CREAT) == 0)
|
||||
{
|
||||
return open(path, options);
|
||||
return TEMP_FAILURE_RETRY( open(path, options) );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -319,19 +320,19 @@ static __inline__ int unix_open(const char* path, int options,...)
|
|||
va_start( args, options );
|
||||
mode = va_arg( args, int );
|
||||
va_end( args );
|
||||
return open(path, options, mode);
|
||||
return TEMP_FAILURE_RETRY( open( path, options, mode ) );
|
||||
}
|
||||
}
|
||||
|
||||
static __inline__ int adb_open_mode( const char* pathname, int options, int mode )
|
||||
{
|
||||
return open( pathname, options, mode );
|
||||
return TEMP_FAILURE_RETRY( open( pathname, options, mode ) );
|
||||
}
|
||||
|
||||
|
||||
static __inline__ int adb_open( const char* pathname, int options )
|
||||
{
|
||||
int fd = open( pathname, options );
|
||||
int fd = TEMP_FAILURE_RETRY( open( pathname, options ) );
|
||||
if (fd < 0)
|
||||
return -1;
|
||||
close_on_exec( fd );
|
||||
|
@ -357,7 +358,7 @@ static __inline__ int adb_close(int fd)
|
|||
|
||||
static __inline__ int adb_read(int fd, void* buf, size_t len)
|
||||
{
|
||||
return read(fd, buf, len);
|
||||
return TEMP_FAILURE_RETRY( read( fd, buf, len ) );
|
||||
}
|
||||
|
||||
#undef read
|
||||
|
@ -365,7 +366,7 @@ static __inline__ int adb_read(int fd, void* buf, size_t len)
|
|||
|
||||
static __inline__ int adb_write(int fd, const void* buf, size_t len)
|
||||
{
|
||||
return write(fd, buf, len);
|
||||
return TEMP_FAILURE_RETRY( write( fd, buf, len ) );
|
||||
}
|
||||
#undef write
|
||||
#define write ___xxx_write
|
||||
|
@ -386,7 +387,7 @@ static __inline__ int adb_unlink(const char* path)
|
|||
|
||||
static __inline__ int adb_creat(const char* path, int mode)
|
||||
{
|
||||
int fd = creat(path, mode);
|
||||
int fd = TEMP_FAILURE_RETRY( creat( path, mode ) );
|
||||
|
||||
if ( fd < 0 )
|
||||
return -1;
|
||||
|
@ -401,7 +402,7 @@ static __inline__ int adb_socket_accept(int serverfd, struct sockaddr* addr,
|
|||
{
|
||||
int fd;
|
||||
|
||||
fd = accept(serverfd, addr, addrlen);
|
||||
fd = TEMP_FAILURE_RETRY( accept( serverfd, addr, addrlen ) );
|
||||
if (fd >= 0)
|
||||
close_on_exec(fd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue