Changeset 247 for branches/samba-3.2.x/source/lib/system.c
- Timestamp:
- Jun 1, 2009, 10:51:27 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.2.x/source/lib/system.c
r232 r247 124 124 do { 125 125 ret = read(fd, buf, count); 126 #ifndef __OS2__127 126 } while (ret == -1 && errno == EINTR); 128 #else129 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */130 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));131 #endif132 127 return ret; 133 128 } … … 143 138 do { 144 139 ret = write(fd, buf, count); 145 #ifndef __OS2__146 140 } while (ret == -1 && errno == EINTR); 147 #else148 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */149 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));150 #endif151 141 return ret; 152 142 } … … 192 182 ret = pread(fd, buf, count, off); 193 183 #endif 194 #ifndef __OS2__195 184 } while (ret == -1 && errno == EINTR); 196 #else 197 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */ 198 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN))); 199 #endif 200 return ret; 201 } 202 #endif 203 185 return ret; 186 } 187 #endif 204 188 /******************************************************************* 205 189 A write wrapper that will deal with EINTR and 64-bit file offsets. 206 190 ********************************************************************/ 207 208 191 #if defined(HAVE_PWRITE) || defined(HAVE_PWRITE64) 209 192 ssize_t sys_pwrite(int fd, const void *buf, size_t count, SMB_OFF_T off) 210 193 { 211 194 ssize_t ret; 212 213 195 do { 214 196 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_OFF64_T) && defined(HAVE_PWRITE64) … … 217 199 ret = pwrite(fd, buf, count, off); 218 200 #endif 219 #ifndef __OS2__220 201 } while (ret == -1 && errno == EINTR); 221 #else 222 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */ 223 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN))); 224 #endif 225 return ret; 226 } 227 #endif 228 202 return ret; 203 } 204 #endif 229 205 /******************************************************************* 230 206 A send wrapper that will deal with EINTR. 231 207 ********************************************************************/ 232 233 208 ssize_t sys_send(int s, const void *msg, size_t len, int flags) 234 209 { 235 210 ssize_t ret; 236 237 211 do { 238 212 ret = send(s, msg, len, flags); 239 #ifndef __OS2__240 213 } while (ret == -1 && errno == EINTR); 241 #else 242 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */ 243 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN))); 244 #endif 245 return ret; 246 } 247 214 return ret; 215 } 248 216 /******************************************************************* 249 217 A sendto wrapper that will deal with EINTR. 250 218 ********************************************************************/ 251 252 219 ssize_t sys_sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) 253 220 { 254 221 ssize_t ret; 255 256 222 do { 257 223 ret = sendto(s, msg, len, flags, to, tolen); 258 #ifndef __OS2__259 224 } while (ret == -1 && errno == EINTR); 260 #else 261 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */ 262 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN))); 263 #endif 264 return ret; 265 } 266 225 return ret; 226 } 267 227 /******************************************************************* 268 228 A recv wrapper that will deal with EINTR. 269 229 ********************************************************************/ 270 271 230 ssize_t sys_recv(int fd, void *buf, size_t count, int flags) 272 231 { 273 232 ssize_t ret; 274 275 233 do { 276 234 ret = recv(fd, buf, count, flags); 277 #ifndef __OS2__278 235 } while (ret == -1 && errno == EINTR); 279 #else280 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */281 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));282 #endif283 236 return ret; 284 237 } … … 294 247 do { 295 248 ret = recvfrom(s, buf, len, flags, from, fromlen); 296 #ifndef __OS2__297 249 } while (ret == -1 && errno == EINTR); 298 #else299 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */300 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));301 #endif302 250 return ret; 303 251 } … … 313 261 do { 314 262 ret = fcntl(fd, cmd, arg); 315 #ifndef __OS2__316 263 } while (ret == -1 && errno == EINTR); 317 #else318 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */319 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));320 #endif321 264 return ret; 322 265 } … … 332 275 do { 333 276 ret = fcntl(fd, cmd, arg); 334 #ifndef __OS2__335 277 } while (ret == -1 && errno == EINTR); 336 #else337 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */338 } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));339 #endif340 278 return ret; 341 279 }
Note:
See TracChangeset
for help on using the changeset viewer.