std::os::errno returns platform specific value. fixes #21898
This commit is contained in:
@@ -337,7 +337,7 @@ impl IoError {
|
|||||||
/// If `detail` is `true`, the `detail` field of the `IoError`
|
/// If `detail` is `true`, the `detail` field of the `IoError`
|
||||||
/// struct is filled with an allocated string describing the error
|
/// struct is filled with an allocated string describing the error
|
||||||
/// in more detail, retrieved from the operating system.
|
/// in more detail, retrieved from the operating system.
|
||||||
pub fn from_errno(errno: uint, detail: bool) -> IoError {
|
pub fn from_errno(errno: i32, detail: bool) -> IoError {
|
||||||
let mut err = sys::decode_error(errno as i32);
|
let mut err = sys::decode_error(errno as i32);
|
||||||
if detail && err.kind == OtherIoError {
|
if detail && err.kind == OtherIoError {
|
||||||
err.detail = Some(os::error_string(errno).chars()
|
err.detail = Some(os::error_string(errno).chars()
|
||||||
@@ -353,7 +353,7 @@ impl IoError {
|
|||||||
/// operating system) between the call(s) for which errors are
|
/// operating system) between the call(s) for which errors are
|
||||||
/// being checked and the call of this function.
|
/// being checked and the call of this function.
|
||||||
pub fn last_error() -> IoError {
|
pub fn last_error() -> IoError {
|
||||||
IoError::from_errno(os::errno() as uint, true)
|
IoError::from_errno(os::errno() as i32, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -513,8 +513,8 @@ pub fn change_dir(p: &Path) -> IoResult<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the platform-specific value of errno
|
/// Returns the platform-specific value of errno
|
||||||
pub fn errno() -> uint {
|
pub fn errno() -> i32 {
|
||||||
sys::os::errno() as uint
|
sys::os::errno() as i32
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return the string corresponding to an `errno()` value of `errnum`.
|
/// Return the string corresponding to an `errno()` value of `errnum`.
|
||||||
@@ -524,15 +524,15 @@ pub fn errno() -> uint {
|
|||||||
/// use std::os;
|
/// use std::os;
|
||||||
///
|
///
|
||||||
/// // Same as println!("{}", last_os_error());
|
/// // Same as println!("{}", last_os_error());
|
||||||
/// println!("{}", os::error_string(os::errno() as uint));
|
/// println!("{}", os::error_string(os::errno() as i32));
|
||||||
/// ```
|
/// ```
|
||||||
pub fn error_string(errnum: uint) -> String {
|
pub fn error_string(errnum: i32) -> String {
|
||||||
return sys::os::error_string(errnum as i32);
|
return sys::os::error_string(errnum as i32);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a string representing the platform-dependent last error
|
/// Get a string representing the platform-dependent last error
|
||||||
pub fn last_os_error() -> String {
|
pub fn last_os_error() -> String {
|
||||||
error_string(errno() as uint)
|
error_string(errno() as i32)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the process exit code
|
/// Sets the process exit code
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ impl Process {
|
|||||||
match unsafe { c::select(max, &mut set, ptr::null_mut(),
|
match unsafe { c::select(max, &mut set, ptr::null_mut(),
|
||||||
ptr::null_mut(), p) } {
|
ptr::null_mut(), p) } {
|
||||||
// interrupted, retry
|
// interrupted, retry
|
||||||
-1 if os::errno() == libc::EINTR as uint => continue,
|
-1 if os::errno() == libc::EINTR as i32 => continue,
|
||||||
|
|
||||||
// We read something, break out and process
|
// We read something, break out and process
|
||||||
1 | 2 => {}
|
1 | 2 => {}
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ fn helper(input: libc::c_int, messages: Receiver<Req>, _: ()) {
|
|||||||
assert_eq!(fd.read(&mut buf).ok().unwrap(), 1);
|
assert_eq!(fd.read(&mut buf).ok().unwrap(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
-1 if os::errno() == libc::EINTR as uint => {}
|
-1 if os::errno() == libc::EINTR as i32 => {}
|
||||||
n => panic!("helper thread failed in select() with error: {} ({})",
|
n => panic!("helper thread failed in select() with error: {} ({})",
|
||||||
n, os::last_os_error())
|
n, os::last_os_error())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user