bpo-30022: Get rid of using EnvironmentError and IOError (except test… (#1051)

diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c
index bb65b3b..806e638 100644
--- a/Modules/_multiprocessing/multiprocessing.c
+++ b/Modules/_multiprocessing/multiprocessing.c
@@ -64,7 +64,7 @@
     Py_END_ALLOW_THREADS
 
     if (ret)
-        return PyErr_SetExcFromWindowsErr(PyExc_IOError, WSAGetLastError());
+        return PyErr_SetExcFromWindowsErr(PyExc_OSError, WSAGetLastError());
     Py_RETURN_NONE;
 }
 
@@ -88,7 +88,7 @@
 
     if (nread < 0) {
         Py_DECREF(buf);
-        return PyErr_SetExcFromWindowsErr(PyExc_IOError, WSAGetLastError());
+        return PyErr_SetExcFromWindowsErr(PyExc_OSError, WSAGetLastError());
     }
     _PyBytes_Resize(&buf, nread);
     return buf;
@@ -112,7 +112,7 @@
 
     PyBuffer_Release(&buf);
     if (ret < 0)
-        return PyErr_SetExcFromWindowsErr(PyExc_IOError, WSAGetLastError());
+        return PyErr_SetExcFromWindowsErr(PyExc_OSError, WSAGetLastError());
     return PyLong_FromLong(ret);
 }
 
diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c
index 9614329..79e8715 100644
--- a/Modules/_multiprocessing/semaphore.c
+++ b/Modules/_multiprocessing/semaphore.c
@@ -135,7 +135,7 @@
         Py_RETURN_TRUE;
     case WAIT_OBJECT_0 + 1:
         errno = EINTR;
-        return PyErr_SetFromErrno(PyExc_IOError);
+        return PyErr_SetFromErrno(PyExc_OSError);
     case WAIT_FAILED:
         return PyErr_SetFromWindowsErr(0);
     default: