]> granicus.if.org Git - python/commitdiff
Get rid of circular import and eliminate unprefixed exported symbols
authorRichard Oudkerk <shibturn@gmail.com>
Sun, 7 Oct 2012 17:08:47 +0000 (18:08 +0100)
committerRichard Oudkerk <shibturn@gmail.com>
Sun, 7 Oct 2012 17:08:47 +0000 (18:08 +0100)
from _multiprocessing.

Modules/_multiprocessing/multiprocessing.c
Modules/_multiprocessing/multiprocessing.h
Modules/_multiprocessing/semaphore.c

index eb05c62b0d050684b5ea260e53ea943e069339f0..110eff710edaac12014e0af9617df3e8350a83a4 100644 (file)
 #include "multiprocessing.h"
 
 
-PyObject *ProcessError, *BufferTooShort;
-
 /*
  * Function which raises exceptions based on error codes
  */
 
 PyObject *
-mp_SetError(PyObject *Type, int num)
+_PyMp_SetError(PyObject *Type, int num)
 {
     switch (num) {
 #ifdef MS_WINDOWS
@@ -159,19 +157,12 @@ PyInit__multiprocessing(void)
     if (!module)
         return NULL;
 
-    /* Get copy of BufferTooShort */
-    temp = PyImport_ImportModule("multiprocessing");
-    if (!temp)
-        return NULL;
-    BufferTooShort = PyObject_GetAttrString(temp, "BufferTooShort");
-    Py_XDECREF(temp);
-
 #if defined(MS_WINDOWS) ||                                              \
   (defined(HAVE_SEM_OPEN) && !defined(POSIX_SEMAPHORES_NOT_ENABLED))
-    /* Add SemLock type to module */
-    if (PyType_Ready(&SemLockType) < 0)
+    /* Add _PyMp_SemLock type to module */
+    if (PyType_Ready(&_PyMp_SemLockType) < 0)
         return NULL;
-    Py_INCREF(&SemLockType);
+    Py_INCREF(&_PyMp_SemLockType);
     {
         PyObject *py_sem_value_max;
         /* Some systems define SEM_VALUE_MAX as an unsigned value that
@@ -182,10 +173,10 @@ PyInit__multiprocessing(void)
             py_sem_value_max = PyLong_FromLong(SEM_VALUE_MAX);
         if (py_sem_value_max == NULL)
             return NULL;
-        PyDict_SetItemString(SemLockType.tp_dict, "SEM_VALUE_MAX",
+        PyDict_SetItemString(_PyMp_SemLockType.tp_dict, "SEM_VALUE_MAX",
                              py_sem_value_max);
     }
-    PyModule_AddObject(module, "SemLock", (PyObject*)&SemLockType);
+    PyModule_AddObject(module, "SemLock", (PyObject*)&_PyMp_SemLockType);
 #endif
 
     /* Add configuration macros */
index e3de9baf1b3c98ececa242cae3758647789fcc72..0759a80e44bfa29d691731a0c186b3dfbf52b662 100644 (file)
 #define MP_SOCKET_ERROR (-1002)
 #define MP_EXCEPTION_HAS_BEEN_SET (-1003)
 
-PyObject *mp_SetError(PyObject *Type, int num);
+PyObject *_PyMp_SetError(PyObject *Type, int num);
 
 /*
  * Externs - not all will really exist on all platforms
  */
 
-extern PyObject *BufferTooShort;
-extern PyTypeObject SemLockType;
-extern PyTypeObject PipeConnectionType;
+extern PyTypeObject _PyMp_SemLockType;
 
 /*
  * Miscellaneous
index 8ea92f2b588ee1545b8132f20fb8c2731cfe4fa7..ccd5f017ecac1dd94a808bdb5c9c24a750f8f739 100644 (file)
@@ -193,7 +193,7 @@ semlock_release(SemLockObject *self, PyObject *args)
 #ifndef HAVE_SEM_TIMEDWAIT
 #  define sem_timedwait(sem,deadline) sem_timedwait_save(sem,deadline,_save)
 
-int
+static int
 sem_timedwait_save(sem_t *sem, struct timespec *deadline, PyThreadState *_save)
 {
     int res;
@@ -444,7 +444,7 @@ semlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
   failure:
     if (handle != SEM_FAILED)
         SEM_CLOSE(handle);
-    mp_SetError(NULL, MP_STANDARD_ERROR);
+    _PyMp_SetError(NULL, MP_STANDARD_ERROR);
     return NULL;
 }
 
@@ -491,7 +491,7 @@ semlock_getvalue(SemLockObject *self)
 #else
     int sval;
     if (SEM_GETVALUE(self->handle, &sval) < 0)
-        return mp_SetError(NULL, MP_STANDARD_ERROR);
+        return _PyMp_SetError(NULL, MP_STANDARD_ERROR);
     /* some posix implementations use negative numbers to indicate
        the number of waiting threads */
     if (sval < 0)
@@ -507,16 +507,16 @@ semlock_iszero(SemLockObject *self)
     if (sem_trywait(self->handle) < 0) {
         if (errno == EAGAIN)
             Py_RETURN_TRUE;
-        return mp_SetError(NULL, MP_STANDARD_ERROR);
+        return _PyMp_SetError(NULL, MP_STANDARD_ERROR);
     } else {
         if (sem_post(self->handle) < 0)
-            return mp_SetError(NULL, MP_STANDARD_ERROR);
+            return _PyMp_SetError(NULL, MP_STANDARD_ERROR);
         Py_RETURN_FALSE;
     }
 #else
     int sval;
     if (SEM_GETVALUE(self->handle, &sval) < 0)
-        return mp_SetError(NULL, MP_STANDARD_ERROR);
+        return _PyMp_SetError(NULL, MP_STANDARD_ERROR);
     return PyBool_FromLong((long)sval == 0);
 #endif
 }
@@ -574,7 +574,7 @@ static PyMemberDef semlock_members[] = {
  * Semaphore type
  */
 
-PyTypeObject SemLockType = {
+PyTypeObject _PyMp_SemLockType = {
     PyVarObject_HEAD_INIT(NULL, 0)
     /* tp_name           */ "_multiprocessing.SemLock",
     /* tp_basicsize      */ sizeof(SemLockObject),